Published in
Dec 18, 2020
Leetcode Algorithm
102. Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
Solution:
// create a result array, a queue array and a row array.
// queue.push() and queue.shift()var levelOrder = function(root) { let result = []; if (root === null) return result; // return an empty array
let queue = [];
queue.push(root); while (queue.length > 0){ let row = []; let rowSize = queue.length; while (rowSize > 0){ let currentNode = queue.shift(); if (currentNode.left !== null){ queue.push(currentNode.left);
} if (currentNode.right !== null){ queue.push(currentNode.right);
} // put the nodes in the queue to the row
row.push(currentNode.val);
rowSize --; }
result.push(row); }
return result;
};