diff --git a/src/com/dsa/trees/LevelOrderTraversal.java b/src/com/dsa/trees/LevelOrderTraversal.java index 22978bb..896e1d1 100644 --- a/src/com/dsa/trees/LevelOrderTraversal.java +++ b/src/com/dsa/trees/LevelOrderTraversal.java @@ -28,7 +28,7 @@ public class LevelOrderTraversal { } index++; } - List> list = levelOrder(root); + List> list = levelOrderBottom(root); for (List level : list) { System.out.println(level); } @@ -55,4 +55,23 @@ public class LevelOrderTraversal { } return res; } + + public static List> levelOrderBottom(TreeNode root) { + List> res = new LinkedList<>(); + if (root == null) return res; + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + List list = new LinkedList<>(); + int size = queue.size(); + for (int i = 0; i < size; i++) { + TreeNode node = queue.poll(); + list.add(node.val); + if (node.left != null) queue.offer(node.left); + if (node.right != null) queue.offer(node.right); + } + res.addFirst(list); + } + return res; + } }