Skip to content

二叉树的前序遍历easy DFS

题目描述:给你二叉树的根节点 root ,返回其节点值的前序遍历 。 (即逐层地,从左到右访问所有节点)。

示例

example1:

输入:root = [3,9,20,null,null,15,7]

输出:[[3],[9,20],[15,7]]

example2:

输入:root = [1]

输出:[[1]]

example3:

输入:root = []

输出:[]

解题思路

DFS 遍历,根据前序遍历的顺序收集节点数据信息,最后输出即可

解题方法

1. DFS

typescript
function preorderTraversal(root: TreeNode | null): number[] {
  const res: number[] = []
  if (!root) {
    return res
  }
  function dfs(node: TreeNode | null) {
    if (!node) {
      return
    }
    res.push(node.val)
    dfs(node.left)
    dfs(node.right)
  }
  dfs(root)
  return res
}

2. 另一种 DFS

typescript
function preorderTraversal(root: TreeNode | null): number[] {
  const res: number[] = []
  if (!root) {
    return res
  }
  res.push(root.val)
  res.push(...preorderTraversal(root.left))
  res.push(...preorderTraversal(root.right))
  return res
}

MIT License.