Skip to content

Commit bbddeb9

Browse files
authored
Merge pull request #570 from notauserx/102-Binary-Tree-Level-Order-Traversal-csharp
Create 102-Binary-Tree-Level-Order-Traversal.cs
2 parents d8989b2 + cf74bb2 commit bbddeb9

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* public int val;
5+
* public TreeNode left;
6+
* public TreeNode right;
7+
* public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
8+
* this.val = val;
9+
* this.left = left;
10+
* this.right = right;
11+
* }
12+
* }
13+
*/
14+
public class Solution {
15+
public IList<IList<int>> LevelOrder(TreeNode root) {
16+
var result = new List<IList<int>>();
17+
if(root == null) return result;
18+
19+
var q = new Queue<TreeNode>();
20+
q.Enqueue(root);
21+
22+
while(true) {
23+
var curLevelCount = q.Count;
24+
if(curLevelCount == 0) break;
25+
var curNodes = new List<int>();
26+
while(curLevelCount > 0) {
27+
var cur = q.Dequeue();
28+
curNodes.Add(cur.val);
29+
30+
if(cur.left != null)
31+
q.Enqueue(cur.left);
32+
33+
if(cur.right != null)
34+
q.Enqueue(cur.right);
35+
curLevelCount--;
36+
}
37+
result.Add(curNodes);
38+
}
39+
40+
return result;
41+
}
42+
}

0 commit comments

Comments
 (0)