nary_tree_postorder_traversal
2022-12-14
浏览 (693)
nary_tree_postorder_traversal.go 源码
package leetcode
import "container/list"
/N叉树的后序遍历
/递归
func postorder(root *Node) []int {
var res []int
npostHelper(root, &res)
return res
}
func npostHelper(node *Node, res *[]int) {
if node == nil {
return
}
for _, child := range node.Children {
npostHelper(child, res)
}
*res = append(*res, node.Val)
}
/迭代
func postorder2(root *Node) []int {
var res []int
if root == nil {
return res
}
stack := list.New()
stack.PushFront(root)
for stack.Len() > 0 {
e := stack.Front()
stack.Remove(e)
node := e.Value.(*Node)
res = append([]int{node.Val}, res...)
for _, child := range node.Children {
stack.PushFront(child)
}
}
return res
}
你可能感兴趣的文章
binary_tree_inorder_traversal
binary_tree_level_order_traversal
binary_tree_postorder_traversal
- 所属分类: 后端技术
- 本文标签:
技术
- 版权声明: 本文链接 https://seaxiang.com/blog/a479e865d1e844359a33d919d3985e88