摘要:题目从上到下按层打印二叉树,同一层结点从左至右输出。分析分层次遍历肯定要使用队列来完成了,没啥好分析的代码实现
题目
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
分析分层次遍历肯定要使用队列来完成了,没啥好分析的
代码实现/* 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 / ...
摘要:题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析二叉树的层次遍历,可以借助队列的帮助实现 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 分析 二叉树的层次遍历,可以借助队列的帮助 实现 /* function TreeNode(x) { this.val = x; this.left = null; this.right =...
摘要:题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推分析第一反应可以按照普通的层次遍历然后再把第等等偶数层的结果翻转一下,但是那样子效率太低。 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以...
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{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是根节点,然...
阅读 2487·2023-04-25 17:27
阅读 1800·2019-08-30 15:54
阅读 2351·2019-08-30 13:06
阅读 2948·2019-08-30 11:04
阅读 719·2019-08-29 15:30
阅读 678·2019-08-29 15:16
阅读 1714·2019-08-26 10:10
阅读 3578·2019-08-23 17:02