这是一个创建于 1686 天前的主题,其中的信息可能已经有所发展或是发生改变。
type Tree struct {
Code string `json:"code"`
Parent string `json:"code"`
Child []*OrgTree `json:"child"`
}
type Flat struct {
Code string
Parent string
Lv0Code string
Lv1Code string
Lv2Code string
Lv3Code string
Lv4Code string
Lv5Code string
}
树的层级为 6,求平铺这颗树,得到一个[]Flat 切片,要求每一层的节点对应 Flat 里的 lv 层 Code,比如第二层的&Flat{Code:"test2",Parent:"root",lv0Code:"rootCode",lv1Code:"test2"}
第 1 条附言 · 2020-09-01 18:51:41 +08:00
补充一下 树写错了哈
type Tree struct {
Code string `json:"code"`
Parent string `json:"code"`
Child []*Tree `json:"child"`
}
第二层:&Flat{Code:"test2",Parent:"root",lv0Code:"rootCode",lv1Code:"test2"}
第三层:&Flat{Code:"test3",Parent:"test2",lv0Code:"rootCode",lv1Code:"test2",lv2Code:"test3"}
3 条回复 • 2020-09-02 15:44:10 +08:00
 |
|
1
EscYezi 2020-09-02 07:41:08 +08:00 via iPhone
简单一点的解法:把树分成层,根是第一层,根的子节点是第二层,依次类推,然后每一层进行遍历。
|
 |
|
2
cheng8984 2020-09-02 09:37:54 +08:00
@ EscYezi 是这样的,我写了 5 层遍历 把自己丑哭了,想想递归应该是更好的解法,但是想了半天 没想清楚怎么写这个递归
|
 |
|
3
mind3x 2020-09-02 15:44:10 +08:00 via Android
BFS 遍历,经典做法是用一个队列,不需要递归
|