282 字
1 分钟
二叉树的三种遍历
二叉树
给你二叉树的根节点
root,返回它节点值的 前/中/后序 遍历。
示例 1:
![]()
输入:root = [1,null,2,3]输出:示例 2:
![]()
输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]示例 3:
输入:root = []输出:[]示例 4:
输入:root = [1]输出:[1]
前序遍历
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func preorderTraversal(root *TreeNode) []int { res := []int{} var dfs func(*TreeNode) dfs = func(node *TreeNode){ if node == nil { return }
res = append(res, node.Val) dfs(node.Left) dfs(node.Right) } dfs(root)
return res}中序遍历
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func inorderTraversal(root *TreeNode) []int { res := []int{} var dfs func(*TreeNode) dfs = func(node *TreeNode) { if node == nil { return }
dfs(node.Left) res = append(res, node.Val) dfs(node.Right) } dfs(root)
return res}后序遍历
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func postorderTraversal(root *TreeNode) []int { res := []int{} var dfs func(*TreeNode) dfs = func(node *TreeNode){ if node == nil { return }
dfs(node.Left) dfs(node.Right) res = append(res, node.Val) } dfs(root)
return res}