思路:层序遍历,思路很简单,新建一个队列,如果节点不为空,就把节点的左节点与右节点加入队列。每次循环从队列中取出最前面的节点输出。直到队列为空为止。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null){
return new int[0];
}
LinkedList<TreeNode> s1 = new LinkedList<TreeNode>();
LinkedList<Integer> list = new LinkedList<Integer>();
s1.addLast(root);
while(s1.size()!=0){
root=s1.removeFirst();
list.addLast(root.val);
if(root.left!=null){
s1.addLast(root.left);
}
if(root.right!=null){
s1.addLast(root.right);
}
}
int[] arr =new int[list.size()];
int nums=list.size();
for(int i=0;i<nums;i++){
arr[i]=list.removeFirst();
}
return arr;
}
}