Isabelle
JEN-LI CHEN IN DATA SCIENCE
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;
};

Link

--

--