145. 二叉树的后序遍历 简单
给定一个二叉树,返回它的 后序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3
输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
代码参考:
package main
import "fmt"
func main() {
root := &TreeNode{Val: 4}
root.Left = &TreeNode{Val: 9}
root.Right = &TreeNode{Val: 0}
root.Left.Left = &TreeNode{Val: 5}
root.Left.Right = &TreeNode{Val: 1}
// 4
// / \
// 9 0
// / \
// 5 1
fmt.Println(postorderTraversal(root)) // [5 1 9 0 4]
}
func postorderTraversal(root *TreeNode) []int {
var nums []int
traverse(root, &nums)
return nums
}
func traverse(root *TreeNode, nums *[]int) {
if root == nil {
return
}
traverse(root.Left, nums)
traverse(root.Right, nums)
*nums = append(*nums, root.Val)
}
// TODO
// iteration
最后编辑: kuteng 文档更新时间: 2021-06-05 10:16 作者:kuteng