102. 二叉树的层序遍历

Posted by CodingWithAlice on September 25, 2023

102. 二叉树的层序遍历

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

示例 1:

img

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

示例 2:

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

示例 3:

输入:root = []
输出:[]
  • 还是使用的之前的回溯算法,只是参数和结果条件变简单了
var levelOrder = function(root) {
    const result = [];
    if(root) {
        FindLayer(root, result, 0);
    }
    return result;

    function FindLayer(node, result, index) {
        // 层级记录
        if(Array.isArray(result[index])) {
            result[index].push(node.val);
        } else {
            result[index] = [node.val]
        }
        // 有层级则进入
        let currentIndex = index + 1;
        if(node.left) {
            FindLayer(node.left, result, currentIndex);
        }
        if(node.right) {
            FindLayer(node.right, result, currentIndex);
        }
    }
};