【leetcode】117.(Medium)Populating Next Right Pointers in Each Node II
阿新 • • 發佈:2019-01-03
解題思路:
使用兩個佇列輪番記錄每排結點的情況
提交程式碼:
class Solution {
public void connect(TreeLinkNode root) {
if(root==null) return;
Queue<TreeLinkNode> q1=new LinkedList<>();
Queue<TreeLinkNode> q2=new LinkedList<>();
q1.add(root);
TreeLinkNode n1, n2=null;
while(q1.size()>0) {
while(q1.size()>0) {
n1=q1.poll();
if(n2!=null) n2.next=n1;
if(n1.left!=null)
q2.add(n1.left);
if(n1.right!=null)
q2.add(n1.right);
n2=n1;
}
n2=null;
while(q2.size()>0) {
if(q2.size()> 0) {
n1=q2.poll();
if(n2!=null) n2.next=n1;
if(n1.left!=null)
q1.add(n1.left);
if(n1.right!=null)
q1.add(n1.right);
n2=n1;
}
}
n2=null;
}
}
}
執行結果: