/*
1
2 3
4 5 6 7
输出:[[1], [3, 2], [4, 5, 6, 7]]
*/
// 主要思想就是二叉树的遍历
function print(root) {
if(!root) return [];
var result = [], queue = [], flag = true;
queue.push(root);
while(queue.length) {
var len = queue.length;
var tempArr = [];
for(var i = 0; i < len; i++) {
var temp = queue.shift();
tempArr.push(temp.val);
if(temp.left) {
queue.push(temp.left);
}
if(temp.rigth) {
queue.push(temp.right);
}
}
if(!flag) {
tempArr.reverse();
}
flag = !flag;
result.push(tempArr);
}
return result;
}
// 测试数据
var root = {
val: 1,
left: {
val: 2,
left: {
val: 4,
},
right: {
val: 5
}
},
right: {
val: 3,
left: {
val: 6,
},
right: {
val: 7
}
}
}
console.log(print(root));
结果如下图:
js之字形输出二叉树
最新推荐文章于 2023-02-02 14:17:55 发布