[Day27]-[tree] 遍历
144. 二叉树的前序遍历
94. 二叉树的中序遍历
145. 二叉树的后序遍历
给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。
示例 1:
输入:root = [1,null,2,3]
输出:[3,2,1]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
题解前序遍历 DLR
题解:
复制代码
中序遍历 LDR
题解
复制代码
后续遍历 LRD
题解
复制代码
本文字数:648 字
阅读完需:约 2 分钟
给你一棵二叉树的根节点 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,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!
促进软件开发及相关领域知识与创新的传播
评论