update: stack to queue

This commit is contained in:
qingyi.liu
2021-05-31 17:19:02 +08:00
parent 58437eb296
commit 4a5c0cb75b

View File

@ -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;