590. N叉树的后序遍历

image.png
返回其后序遍历: [5,6,3,2,4,1].

栈是后进先出
同时 输出需要把最先出栈的元素放在队首

  1. 解题思路
  2. 代码
  3. /**
  4. * Definition for a Node.
  5. * type Node struct {
  6. * Val int
  7. * Children []*Node
  8. * }
  9. */
  10. func postorder(root *Node) []int {
  11. if root==nil{
  12. return nil
  13. }
  14. stack := make([]*Node,0)
  15. stack = append(stack,root)
  16. res := make([]int,0)
  17. for len(stack)>0{
  18. node := stack[len(stack)-1]
  19. stack = stack[:len(stack)-1]
  20. res = append([]int{node.Val},res...)
  21. for i:=0;i<len(node.Children);i++{
  22. stack = append(stack,node.Children[i])
  23. }
  24. }
  25. return res
  26. }

image.png