@[TOC]
剑指 Offer 32 - I. 从上到下打印二叉树
https://leetcode-cn.com/leetbook/read/illustrate-lcof/xsnu0i/
例如:
给定二叉树: [3,9,20,null,null,15,7],
返回:[3,9,20,15,7]
var levelOrder = function(root) {
if(root == null){
return [];
}
let queue = [root];
let res = [];
while(queue.length != 0){
let node = queue.shift();
res.push(node.val);
if(node.left){
queue.push(node.left);
}
if(node.right){
queue.push(node.right);
}
}
return res
};
剑指 Offer 32 - II. 从上到下打印二叉树 II
https://leetcode-cn.com/leetbook/read/illustrate-lcof/xswwvg/
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
给定二叉树: [3,9,20,null,null,15,7],
返回其层次遍历结果:[[3],[9,20], [15,7]]
var levelOrder = function(root) {
if(root == null){
return [];
}
let queue = [root];
let res = [];
while(queue.length != 0){
let level = [];
let len = queue.length;
for(let i = 0; i < len; i++){
let node = queue.shift();
level.push(node.val);
if(node.left){
queue.push(node.left);
}
if(node.right){
queue.push(node.right);
}
}
res.push(level)
}
return res
};
剑指 Offer 32 - III. 从上到下打印二叉树 III
https://leetcode-cn.com/leetbook/read/illustrate-lcof/xs0paj/
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
例如:
给定二叉树: [3,9,20,null,null,15,7],
返回其层次遍历结果:[[3],[20,9], [15,7]]
var levelOrder = function(root) {
if(root == null){
return [];
}
let queue = [root];
let res = [];
let flag = 1;
while(queue.length != 0){
let level = [];
let len = queue.length;
for(let i = 0; i < len; i++){
let node = queue.shift();
if(flag==1){
level.push(node.val);
}else{
level.unshift(node.val);
};
if(node.left){
queue.push(node.left);
}
if(node.right){
queue.push(node.right);
}
}
flag = -flag;
res.push(level)
}
return res
};
BFS 翻转二叉树(附)
var mirrorTree = function(root) {
if(root == null){
return []
}
let res = [];
let queue = [root];
while(queue.length != 0 ){
let node = queue.shift();
res.push(node.val);
if(node.right){
queue.push(node.right)
}
if(node.left){
queue.push(node.left)
}
}
return res
};
网友评论