资讯专栏INFORMATION COLUMN

【刷算法】层次遍历二叉树

feng409 / 2066人阅读

摘要:题目从上到下按层打印二叉树,同一层结点从左至右输出。分析分层次遍历肯定要使用队列来完成了,没啥好分析的代码实现

题目

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

分析

分层次遍历肯定要使用队列来完成了,没啥好分析的

代码实现
/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Print(r)
{
    if(r === null)   
        return [];
    var q = [];
    var index = 0;
    var res = [];
    res.push([])
    q.push(r);
    q.push(null);

    while(q.length !== 0){
        var cur = q.shift();
        if(cur !== null){
            res[index].push(cur.val);
            if(cur.left !== null)
                q.push(cur.left);
            if(cur.right !== null)
                q.push(cur.right);
        }else{
            if(q.length !== 0){
                res.push([]);
                index++;
                q.push(null);
            }
        }
    }

    return res;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96183.html

相关文章

  • 算法】翻转叉树的递归和非递归解法

    摘要:题目描述操作给定的二叉树,将其变翻转为源二叉树的镜像。输入描述解题思路递归版本首先,对数据结构比较了解的话会想到用递归来解决。所谓递归,在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法来自维基百科。 题目描述 操作给定的二叉树,将其变翻转为源二叉树的镜像。 输入描述: 1 1 / ...

    wangbjun 评论0 收藏0
  • 算法】从上往下打印叉树

    摘要:题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析二叉树的层次遍历,可以借助队列的帮助实现 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 分析 二叉树的层次遍历,可以借助队列的帮助 实现 /* function TreeNode(x) { this.val = x; this.left = null; this.right =...

    ShowerSun 评论0 收藏0
  • 算法】按照之字形打印叉树

    摘要:题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推分析第一反应可以按照普通的层次遍历然后再把第等等偶数层的结果翻转一下,但是那样子效率太低。 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以...

    phpmatt 评论0 收藏0
  • 算法】重建叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析 前序遍历是中左右的顺序,中序遍历是左中右的顺序,那么对于{1,2,4,7,3,5,6,8}和{4,7,2,1,5,3,8,6}来说,1是根节点,然...

    Blackjun 评论0 收藏0

发表评论

0条评论

feng409

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<