/**
* Definition for binary tree with next pointer.
* public class TreeLinkNode {
* int val;
* TreeLinkNode left, right, next;
* TreeLinkNode(int x) { val = x; }
* }
*/
public class Solution {
public void connect(TreeLinkNode root) {
// Start typing your Java solution below
// DO NOT write main() function
if(root==null)return;
if(root!=null&&root.left==null)
{root.next=null;return;}
Queue<TreeLinkNode> q = new LinkedList<TreeLinkNode>();
q.add(root.left);
q.add(root.right);
root.next=null;
int num;
while(!q.isEmpty()){
num = q.size()-1;
TreeLinkNode pre = q.remove();
if(pre.left!=null){
q.add(pre.left);
q.add(pre.right);}
while(num>0){
TreeLinkNode latter = q.remove();
if(latter.left!=null){
q.add(latter.left);
q.add(latter.right);
}
pre.next = latter;pre = latter;num--;
}
pre.next=null;
}
}
}
Populating Next Right Pointers in Each Node
最新推荐文章于 2013-11-24 17:51:37 发布