Populating Next Right Pointers in Each Node II

来源:互联网 发布:见过最骚的女生知乎 编辑:程序博客网 时间:2024/04/28 23:47
/** * 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.right==null)            {root.next=null;return;}        Queue<TreeLinkNode> q = new LinkedList<TreeLinkNode>();        if(root.left!=null)            q.add(root.left);        if(root.right!=null)            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);            if(pre.right!=null)                q.add(pre.right);            while(num>0){                TreeLinkNode latter = q.remove();                if(latter.left!=null)                    q.add(latter.left);                if(latter.right!=null)                    q.add(latter.right);                pre.next = latter;pre = latter;num--;            }            pre.next=null;        }         }}
	
				
		
原创粉丝点击