117. Populating Next Right Pointers in Each Node II

一、题目

  1、审题

  2、分析

    给出一棵二叉树,可能是非完全二叉树,补全每个节点的 next 指针。

 

 二、解答

  1、思路: 

    方法一、

      采用三个指针进行依层次补全 next 指针。

    public void connect11(TreeLinkNode root) {
        
        if(root == null)
            return;
        
        TreeLinkNode cur = root;
        TreeLinkNode nextDummyHead = new TreeLinkNode(0);
        TreeLinkNode p = nextDummyHead;
        
        while(cur != null) {
            
            if(cur.left != null) {
                p.next = cur.left;
                p = p.next;
            }
            
            if(cur.right != null) {
                p.next = cur.right;
                p = p.next;
            }
            
            if(cur.next != null)
                cur = cur.next;
            else {
                cur = nextDummyHead.next;
                nextDummyHead.next = null;
                p = nextDummyHead;
            }
        }
        
    }

 

posted @ 2018-10-05 20:43  skillking2  阅读(101)  评论(0编辑  收藏  举报