/** * 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; } } }
Populating Next Right Pointers in Each Node II
最新推荐文章于 2022-04-05 16:12:16 发布