牛客网-剑指offer[编程题]把二叉树打印成多行 js详解
作者:互联网
这个就是树的层次遍历,比上一题加了条件的层次遍历还要简单
只有搞清楚了各个数组之间的关系就ok
举例:
三个数组只有arr中存储节点,其他两个只存储值
以下是数组变化:
arr = [1];
tempArr = [];
temp = 1;
arr = [];
tempArr = [1];
arr = [2];
arr = [2,3]
res = [[1]]
tempArr = [];
temp = 2;
tempArr = [2];
arr = [3];
temp = 3;
tempArr = [2,3];
res = [[1],[2,3]]
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function Print(root)
{
// write code here
if(root == null)return [];
var tempArr = [];
var arr = [];
var res = [];
arr.push(root);
while(arr.length){
var len = arr.length;
tempArr = [];
for(var i = 0;i < len; i++){
var temp = arr.shift();
tempArr.push(temp.val);
if(temp.left)
arr.push(temp.left)
if(temp.right)
arr.push(temp.right)
}
res.push(tempArr);
}
return res;
}
kotoriyou
发布了73 篇原创文章 · 获赞 4 · 访问量 4659
私信
关注
标签:tempArr,arr,temp,offer,res,js,push,二叉树,var 来源: https://blog.csdn.net/kotoriyou/article/details/103990038