您的位置:首页 > Web前端 > Node.js

Populating Next Right Pointers in Each Node

2013-04-20 15:23 260 查看
/**
* 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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  队列