Leetcode基础刷题之PHP解析(117. Populating Next Right Pointers in Each Node II)


上一题链接Leetcode基础刷题之PHP解析(116. Populating Next Right Pointers in Each )



d563b67a38d6c6ff16d2ecd1f56178db.png


题目描述

这里是上一题的第二版,这道题让我们把二叉树每一个结点的下一个指针指向他的右侧结点,如果没有那么就是null


题目分析

实现方法还是递归,确认层级的next指针,然后把右节点的next指针指向它,在把左节点的指针指向右节点,如果没有右节点,直接指向null。
代码实现
    /**
     * @param Node $root
     * @return Node
     */
    function connect($root) {
        if(!$root) return null;
        $p=$root->next;
        while($p){
            if($p->left){
                $p=$p->left;
                break;
            }
            if($p->right){
                $p=$p->right;
                break;
            }
            $p=$p->next;
        }
       if($root->right) $root->right->next=$p;
       if($root->left) $root->left->next=$root->right??$p;
       $this->connect($root->right);
       $this->connect($root->left);
       return $root;
    }

Github整理地址:https://github.com/wuqinqiang/leetcode-php


Vote Vote Cancel Collect Collect Cancel

<< 上一篇: Leetcode基础刷题之PHP解析(116. Populating Next Right Pointers in Each )

>> 下一篇: Leetcode基础刷题之PHP解析(124. Binary Tree Maximum Path Sum)