美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D125 107. Binary

Leetcode PHP题解--D125 107. Binary

作者: skys215 | 来源:发表于2020-10-02 17:56 被阅读0次

    D125 107. Binary Tree Level Order Traversal II

    题目链接

    107. Binary Tree Level Order Traversal II

    题目分析

    给定一个二叉树,把同一层的值放在同一键下的数组内,以左节点的值为先,逆序返回。

    思路

    从给出的样例可知,越在顶层的值,它的键值越大。
    左节点的值在前面,这个就简单了,用先序遍历,把值直接塞入数组末尾即可。
    由于层高是不确定的,我决定先把顶层的值存在前面,最后用array_reverse倒转数据来解决。

    最终代码

    <?php
    /**
     * Definition for a binary tree node.
     * class TreeNode {
     *     public $val = null;
     *     public $left = null;
     *     public $right = null;
     *     function __construct($value) { $this->val = $value; }
     * }
     */
    class Solution {
        private $vals = [];
        /**
         * @param TreeNode $root
         * @return Integer[][]
         */
        function levelOrderBottom($root) {
            $this->preOrder($root, 0);
            return array_reverse($this->vals);
        }
        function preOrder($node, $level){
            if(is_null($node)){
                return;
            }
            if(!isset($this->vals[$level])){
                $this->vals[$level] = [];
            }
            $this->vals[$level][] = $node->val;
            if($node->left){
                $this->preOrder($node->left, $level+1);
            }
            if($node->right){
                $this->preOrder($node->right, $level+1);
            }
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D125 107. Binary

        本文链接:https://www.haomeiwen.com/subject/lhnbuktx.html