TreeNode的实现同LeetCode。
public class TreeNode {
Integer val;
TreeNode left;
TreeNode right;
//TreeNode(Integer x) { val = x; }
TreeNode(int x) {
val = x;
left=null;
right=null;
}
}
使用整形数组构造二叉树:
public TreeNode buildTree(Integer[] array){
TreeNode root=new TreeNode(array[0]);//假设array[0]不为null
Queue<TreeNode> queue=new LinkedList<TreeNode>();
queue.offer(root);
int count=0,len=array.length;
//System.out.println(len);
while(!queue.isEmpty()){
TreeNode temp=queue.poll();
if(temp!=null){
if(count+1<len){
if(array[count+1]==null)//如果TreeNode的构造函数接收的参数为Integer,则可以省去此处if else
temp.left=null;
else
temp.left=new TreeNode(array[count+1]);
count++;
queue.offer(temp.left);
}
if(count+1<len) {
if(array[count+1]==null)
temp.right=null;
else
temp.right = new TreeNode(array[count+1]);
count++;
queue.offer(temp.right);
}
}
}
return root;
}