using System;
using System.Collections.Generic;
/*
public class TreeNode
{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode (int x)
{
val = x;
}
}
*/
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型二维数组
*/
public List<List<int>> levelOrder (TreeNode root) {
// write code here
List<List<int>> res=new List<List<int>>();
if(root==null) return res;
int front=-1;
List<int> index=new List<int>();
index.Add(0);
List<int> temp=new List<int>();
temp.Add(root.val);
res.Add(temp);
Queue<TreeNode> myqueue=new Queue<TreeNode>();
myqueue.Enqueue(root);
for(;myqueue.Count>0;){
++front;
TreeNode q=myqueue.Dequeue();
if(q.left!=null){
myqueue.Enqueue(q.left);
index.Add(index[front]+1);
if(index[index.Count-2]!=index[index.Count-1]){
List<int> temp1=new List<int>();
temp1.Add(q.left.val);
res.Add(temp1);}
else
res[index[index.Count-1]].Add(q.left.val);
}
if(q.right!=null){
myqueue.Enqueue(q.right);
index.Add(index[front]+1);
if(index[index.Count-2]!=index[index.Count-1]){
List<int> temp1=new List<int>();
temp1.Add(q.right.val);
res.Add(temp1);}
else
res[index[index.Count-1]].Add(q.right.val);
}
}
return res;
}
}
NC15 求二叉树的层序遍历
最新推荐文章于 2024-09-17 14:45:22 发布