其实就是层序遍历,借助队列的方法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
import java.util.Queue;
import java.util.LinkedList;
import java.util.ArrayList;
class Solution {
public int[] levelOrder(TreeNode root) {
if (root == null ){
return new int[0];
}
//层序遍历
Queue<TreeNode> q = new LinkedList<TreeNode>();
ArrayList<Integer> arr = new ArrayList<Integer>();
q.add(root);
while (!q.isEmpty()){
TreeNode cur = q.remove();
arr.add(cur.val);
if (cur.left != null){
q.add(cur.left);
}
if (cur.right != null){
q.add(cur.right);
}
}
int[] d = new int[arr.size()];
for(int i = 0;i<arr.size();i++){
d[i] = arr.get(i);
}
return d;
}
}