zoukankan      html  css  js  c++  java
  • 116. Populating Next Right Pointers in Each Node

     

    Given a binary tree

        struct TreeLinkNode {
          TreeLinkNode *left;
          TreeLinkNode *right;
          TreeLinkNode *next;
        }
    

    Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL.

    Initially, all next pointers are set to NULL.

    Note:

    • You may only use constant extra space.
    • You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).

    For example,
    Given the following perfect binary tree,

             1
           /  
          2    3
         /   / 
        4  5  6  7
    

    After calling your function, the tree should look like:

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



    默认每个节点的next 都是空。
    2层循环,第一层循环是层数,用level_start控制,
    第二层循环,循环每层的每个节点,来构建next 指针,
    构建next指针时,有3种情况:1 左指针指向右指针
    2 右指针不是当层最末尾的指针,右指针指向父亲节点next的左指针。
    3
    右指针是当层最末尾的指针,不用处理,因为默认每个节点的next都是指向null的。

     1 public class Solution {
     2     public void connect(TreeLinkNode root) {
     3         TreeLinkNode level_start=root;
     4         while(level_start!=null){
     5             TreeLinkNode cur=level_start;
     6             while(cur!=null){
     7                 if(cur.left!=null) cur.left.next=cur.right;
     8                 if(cur.right!=null && cur.next!=null) cur.right.next=cur.next.left;
     9                 
    10                 cur=cur.next;
    11             }
    12             level_start=level_start.left;
    13         }
    14     }
    15 }
  • 相关阅读:
    CCF计算机职业资格认证考试 201809-2 买菜
    【CodeVS3013】单词背诵
    【CodeVS3304】水果姐逛水果街Ⅰ
    【CodeVS4246】奶牛的身高
    【hdu1247】Hat’s Words
    【CodeVS4189】字典
    【CodeVS4244】平衡树练习
    【poj3264】Balanced Lineup
    【树状数组】
    【CodeVS1163】访问艺术馆
  • 原文地址:https://www.cnblogs.com/zle1992/p/7784711.html
Copyright © 2011-2022 走看看