【JS每日一算法】🟩139.二叉树的前序遍历(深度优先)

243 阅读1分钟

给你二叉树的根节点 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

  题解:

个人博客

更多JS版本题解点击链接关注该仓库👀

/**
 * @description: 深度优先  TC:O(n)  SC:O(n)
 * @author: JunLiangWang
 * @param {*} root 给定树的头节点
 * @return {*}
 */
function dfs(root) {
    /**
     * 本方案使用深度优先的方式,前序遍历树的节点
     */

    // 记录树的节点
    let outArray = []
    /**
     * @description: 递归实现深度优先
     * @author: JunLiangWang
     * @param {*} root  子树根节点
     * @return {*}
     */    
    function recursion(root) {
        // 如果根节点为空,直接return
        if (!root) return
        // 向数组添加根节点
        outArray.push(root.val)
        // 递归遍历左子树
        recursion(root.left)
        // 递归遍历右子树
        recursion(root.right)
    }
    // 执行递归
    recursion(root)
    // 返回结果
    return outArray
}