LeetCode 144 二叉树的前序遍历

82 阅读1分钟

参加了 kkb 的门徒培训,想要记录下自己的成长过程。每天一篇,坚持不断更(补) --- 2022.3.29

题目描述

给你二叉树的根节点 root ,返回它节点值的 前序 **遍历。

 

示例 1:

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

示例 2:

输入: root = []
输出: []

示例 3:

输入: root = [1]
输出: [1]

示例 4:

输入: root = [1,2]
输出: [1,2]

示例 5:

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

 

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

解题思路

遇到树有关的问题时,我们通常会使用递归来解决。

/**
 * 
 * @param {TreeNode} root 
 * @param {number[]} ans 
 */
const preorder = (root, ans) => {
    if (!root) return;
    ans.push(root.val);
    preorder(root.left, ans);
    preorder(root.right, ans);
}
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var preorderTraversal = function(root) {
    const ans = []
    preorder(root, ans);
    return ans
};

或者可以用个更简单的写法


/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var preorderTraversal = function(root) {
    if (!root) return [];
    return [root.val, ...preorderTraversal(root.left), ...preorderTraversal(root.right)]
};