剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡

简介: 剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡

前言

掘金团队号上线,助你 Offer 临门! 点击 查看详情

题目描述

image.png

解题思路

  • 这道题属于二叉树的层次遍历问题
  • 首先定义三个数组
  • 数组queue用来存放当前层的所有元素指针
  • 数组temp充当临时数组,用来存放当前元素所有指针的左右孩子指针
  • 数组test用来存放每一层元素的值
  • 当test存储完一层的元素后,就将queue置为空,然后遍历temp将每个元素的左右孩子节点继续放入queue,继续下次循环

解题代码

var levelOrder = function (root) {
    // 使用队列的方式进行二叉树的层次遍历
    if (root === null) return [];
    let queue = [];
    const result = [];
    queue.push(root);
    while (queue.length !== 0) {
        const temp = [];
        const test = [];
        for (let v of queue) {
            temp.push(v);
            test.push(v.val);
        }
        result.push(test);
        queue = [];
        for (let v of temp) {
            if (v.left !== null) {
                queue.push(v.left)
            }
            if (v.right !== null) {
                queue.push(v.right)
            }
        }
    }
    for (let i = 0; i < result.length;i++) {
        if (i % 2 !== 0) {
            result[i] = result[i].reverse()
        }
    }
    return result;
};

总结

  • 本题乍一看不难,大家也都容易想到一定的思路,但是难就难层次的遍历上
  • 本题可以采用一个数组来记录当前层,另一个数组来记录当前层的所有子节点,然后将当前层清空,使用所有子节点的层继续遍历。
相关文章
|
7月前
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
11月前
|
JavaScript Java 测试技术
基于微信小程序的刷题系统的+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的刷题系统的+springboot+vue.js附带文章和源代码设计说明文档ppt
112 1
|
9月前
|
算法 JavaScript
JS 【详解】二叉树(含二叉树的前、中、后序遍历技巧和算法实现)
JS 【详解】二叉树(含二叉树的前、中、后序遍历技巧和算法实现)
75 0
|
11月前
|
JavaScript 前端开发
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
剑指 Offer 31. 栈的压入、弹出序列 (javascript实现)
|
11月前
|
存储 算法 JavaScript
JS算法-二叉树的后序遍历
JS算法-二叉树的后序遍历
|
11月前
|
算法 JavaScript
JS算法-二叉树的前序遍历
JS算法-二叉树的前序遍历
|
11月前
|
算法 JavaScript
JS算法-二叉树的右视图
JS算法-二叉树的右视图
|
11月前
|
算法 JavaScript
JS算法-二叉树展开转为链表
JS算法-二叉树展开转为链表
|
11月前
|
JavaScript 前端开发
JavaScript题解剑指offer : 09. 用两个栈实现队列
JavaScript题解剑指offer : 09. 用两个栈实现队列
65 0
|
算法 JavaScript 前端开发
JavaScript实现二叉树算法
JavaScript实现二叉树算法
161 0