mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
update: stack to queue
This commit is contained in:
@ -1224,15 +1224,15 @@ var rightSideView = function(root) {
|
|||||||
|
|
||||||
// 迭代
|
// 迭代
|
||||||
var averageOfLevels = function(root) {
|
var averageOfLevels = function(root) {
|
||||||
const stack = [], res = [];
|
const queue = [], res = [];
|
||||||
root && stack.push(root);
|
root && queue.push(root);
|
||||||
while(len = stack.length) {
|
while(len = queue.length) {
|
||||||
let sum = 0, l = len;
|
let sum = 0, l = len;
|
||||||
while(l--) {
|
while(l--) {
|
||||||
const {val, left, right} = stack.shift();
|
const {val, left, right} = queue.shift();
|
||||||
sum += val;
|
sum += val;
|
||||||
left && stack.push(left);
|
left && queue.push(left);
|
||||||
right && stack.push(right);
|
right && queue.push(right);
|
||||||
}
|
}
|
||||||
res.push(sum/len);
|
res.push(sum/len);
|
||||||
}
|
}
|
||||||
@ -1263,15 +1263,15 @@ var averageOfLevels = function(root) {
|
|||||||
// 迭代
|
// 迭代
|
||||||
const MIN_G = Number.MIN_SAFE_INTEGER;
|
const MIN_G = Number.MIN_SAFE_INTEGER;
|
||||||
var largestValues = function(root) {
|
var largestValues = function(root) {
|
||||||
const stack = [], res = [];
|
const queue = [], res = [];
|
||||||
root && stack.push(root);
|
root && queue.push(root);
|
||||||
while(len = stack.length) {
|
while(len = queue.length) {
|
||||||
let max = MIN_G;
|
let max = MIN_G;
|
||||||
while(len--) {
|
while(len--) {
|
||||||
const {val, left, right} = stack.shift();
|
const {val, left, right} = queue.shift();
|
||||||
max = max > val ? max : val;
|
max = max > val ? max : val;
|
||||||
left && stack.push(left);
|
left && queue.push(left);
|
||||||
right && stack.push(right);
|
right && queue.push(right);
|
||||||
}
|
}
|
||||||
res.push(max);
|
res.push(max);
|
||||||
}
|
}
|
||||||
@ -1300,15 +1300,15 @@ var largestValues = function(root) {
|
|||||||
|
|
||||||
// 迭代
|
// 迭代
|
||||||
var levelOrder = function(root) {
|
var levelOrder = function(root) {
|
||||||
const stack = [], res = [];
|
const queue = [], res = [];
|
||||||
root && stack.push(root);
|
root && queue.push(root);
|
||||||
while(len = stack.length) {
|
while(len = queue.length) {
|
||||||
const vals = [];
|
const vals = [];
|
||||||
while(len--) {
|
while(len--) {
|
||||||
const {val, children} = stack.shift();
|
const {val, children} = queue.shift();
|
||||||
vals.push(val);
|
vals.push(val);
|
||||||
for(const e of children) {
|
for(const e of children) {
|
||||||
stack.push(e);
|
queue.push(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res.push(vals);
|
res.push(vals);
|
||||||
@ -1341,15 +1341,15 @@ var levelOrder = function(root) {
|
|||||||
|
|
||||||
// 迭代
|
// 迭代
|
||||||
var connect = function(root) {
|
var connect = function(root) {
|
||||||
const stack = [];
|
const queue = [];
|
||||||
root && stack.push(root);
|
root && queue.push(root);
|
||||||
while(len = stack.length) {
|
while(len = queue.length) {
|
||||||
while(len--) {
|
while(len--) {
|
||||||
const node1 = stack.shift(),
|
const node1 = queue.shift(),
|
||||||
node2 = len ? stack[0] : null;
|
node2 = len ? queue[0] : null;
|
||||||
node1.next = node2;
|
node1.next = node2;
|
||||||
node1.left && stack.push(node1.left);
|
node1.left && queue.push(node1.left);
|
||||||
node1.right && stack.push(node1.right);
|
node1.right && queue.push(node1.right);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return root;
|
return root;
|
||||||
|
Reference in New Issue
Block a user