1. 程式人生 > >【leetcode】117.(Medium)Populating Next Right Pointers in Each Node II

【leetcode】117.(Medium)Populating Next Right Pointers in Each Node II

解題思路:
使用兩個佇列輪番記錄每排結點的情況


提交程式碼:

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; } } }

執行結果:
在這裡插入圖片描述