© 2026 Hedgehog Software, LLC
public class Solution { public IList<IList<int>> LevelOrder(TreeNode root) { List<IList<int>> res = new(); List<int> separation = new(); if(root == null){ return res; } Queue<TreeNode> q = new Queue<TreeNode>(); q.Enqueue(root); int levelCount = 1; while(q.Count > 0){ TreeNode visited = q.Dequeue(); if(visited.left != null){ q.Enqueue(visited.right); } if(visited.right != null){ q.Enqueue(visited.left); } separation.Add(visited.val); levelCount--; if(levelCount == 0){ res.Add(separation); levelCount = q.Count; } } return res; } }