File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed
src/main/java/com/rampatra/trees Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change 66import java .util .Queue ;
77
88/**
9+ * Given a binary tree, return lists of nodes at each level. The number of lists in the output will be equal to
10+ * the number of levels in the tree.
11+ *
912 * @author rampatra
1013 * @since 2019-04-02
1114 */
@@ -34,14 +37,14 @@ private static List<List<TreeNode>> connectNodes(TreeNode root) {
3437 List <TreeNode > connectedNodesAtLevel = new ArrayList <>();
3538
3639 queue .add (root );
37- queue .add (new TreeNode (null ));
40+ queue .add (new TreeNode (null )); // we use a node with null value as a marker for each level
3841
3942 while (!queue .isEmpty ()) {
4043 TreeNode node = queue .poll ();
41-
44+
4245 if (node .val != null ) {
4346 connectedNodesAtLevel .add (node );
44- } else {
47+ } else { // when we encounter a null in the queue, we know that a level is completed
4548 allNodes .add (connectedNodesAtLevel );
4649 connectedNodesAtLevel = new ArrayList <>();
4750 if (queue .peek () != null ) queue .add (new TreeNode (null ));
You can’t perform that action at this time.
0 commit comments