写点什么

[Day27]-[tree] 遍历

作者:方勇(gopher)
  • 2022 年 4 月 27 日
  • 本文字数:648 字

    阅读完需:约 2 分钟

144. 二叉树的前序遍历

94. 二叉树的中序遍历

145. 二叉树的后序遍历

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。

 

示例 1:

输入:root = [1,null,2,3]

输出:[3,2,1]

示例 2:

输入:root = []

输出:[]

示例 3:

输入:root = [1]

输出:[1]


题解前序遍历 DLR

题解:

func TestPreorderTraversal(t *testing.T) {	tree := &TreeNode{		Val: 2,		Left: &TreeNode{			Val: 1,		},		Right: &TreeNode{			Val: 3,		},	}	var preorderTraversal func(root *TreeNode) []int	var res []int	preorderTraversal = func(root *TreeNode) []int {		if root == nil {			return res		}
res = append(res, root.Val) preorderTraversal(root.Left) preorderTraversal(root.Right) return res }
t.Log(preorderTraversal(tree))}
复制代码

中序遍历 LDR

题解

func inorderTraversal(root *TreeNode) []int {	var res []int    var dfs func(root *TreeNode) []int	dfs = func(root *TreeNode) []int {		if root == nil {			return res		}		dfs(root.Left)        res = append(res, root.Val)		dfs(root.Right)		return res	}
return dfs(root)}
复制代码

后续遍历 LRD

题解

func postorderTraversal(root *TreeNode) []int {	var res []int    var dfs func(root *TreeNode) []int	dfs = func(root *TreeNode) []int {		if root == nil {			return res		}
dfs(root.Left) dfs(root.Right) res = append(res, root.Val) return res }
return dfs(root)}
复制代码


用户头像

Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入

我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!

评论

发布
暂无评论
[Day27]-[tree] 遍历_LeetCode_方勇(gopher)_InfoQ写作社区