• leetcode--Populating Next Right Pointers in Each Node II


    Follow up for problem "Populating Next Right Pointers in Each Node".

    What if the given tree could be any binary tree? Would your previous solution still work?

    Note:

    • You may only use constant extra space.

    For example,
    Given the following binary tree,

             1
           /  
          2    3
         /     
        4   5    7
    

    After calling your function, the tree should look like:

             1 -> NULL
           /  
          2 -> 3 -> NULL
         /     
        4-> 5 -> 7 -> NULL

    public class Solution {
    	public void connect(TreeLinkNode root) {
    		if(root != null){
    			root.next = null;
    			TreeLinkNode topLevel = root;
    			TreeLinkNode nextLevelHead = null;
    			TreeLinkNode node = null;
    			while(topLevel != null){
    				//looking for the head of next level
    				while(topLevel != null && nextLevelHead == null){
    					if(topLevel.left != null){
    						nextLevelHead = topLevel.left;
    						node = nextLevelHead;
    					}
    					if(topLevel.right != null){
    						if(node == null){
    							nextLevelHead = topLevel.right;
    							node = nextLevelHead;
    						}
    						else{
    							node.next = topLevel.right;
    							node = node.next;
    						}
    					}
    					
    					topLevel = topLevel.next;
    				}
    				
    				while(topLevel != null){
    					if(topLevel.left != null){
    						node.next = topLevel.left;
    						node = node.next;
    					}
    					if(topLevel.right != null){
    						node.next = topLevel.right;
    						node = node.next;
    					}
    					topLevel = topLevel.next;
    				}
    				
    				if(node != null){
    					node.next = null;
    					node = node.next;
    				}
    				topLevel = nextLevelHead;
    				nextLevelHead = null;
    			}
    		}
        }
    }
    

      

  • 相关阅读:
    arcgis 线转面
    CAD 命令
    一台服务器挂多个网站
    请教:gridview
    转折
    网站开发标准
    [导入]简单网站开发
    过年了!
    web.config的问题
    java 计算程序执行时间
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3769567.html
Copyright © 2020-2023  润新知