标签:leetcode
https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/
http://blog.csdn.net/linhuanmars/article/details/23510601
/** * 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) { // Same as https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/ // But queue is not allowed TreeLinkNode curhead = root; TreeLinkNode nexthead = null; TreeLinkNode pre = null; // pre in next level // Iterate cur level, assign next level while (curhead != null) { // Start to iterate current level TreeLinkNode cur = curhead; while (cur != null) { if (cur.left != null) { if (nexthead == null) nexthead = cur.left; if (pre != null) pre.next = cur.left; pre = cur.left; } if (cur.right != null) { // Same logic as leftnode handling. if (nexthead == null) nexthead = cur.right; if (pre != null) pre.next = cur.right; pre = cur.right; } cur = cur.next; } // After iteration this level. // Move to next nevel. if (nexthead != null) { curhead = nexthead; nexthead = null; pre = null; } else { // No next head. // We are finished. curhead = null; } } } }
[LeetCode]117 Populating Next Right Pointers in Each Node II
标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1599796