zoukankan      html  css  js  c++  java
  • 257. 二叉树的所有路径-leetcode

    257. 二叉树的所有路径-leetcode

    257. 二叉树的所有路径-leetcode

    Table of Contents

    2 代码

    /**
     * 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 $ret = [];
    
        /**
         * @param TreeNode $root
         * @return String[]
         */
        function binaryTreePaths($root) {
        $this->ret = [];
    
        if (empty($root)) {
            return $this->ret;
        }
        $path = $root->val;
        $this->dfs($root, $path, 1);
    
        return $this->ret;
        }
    
        function dfs($root, $path, $isRoot = 0) {
        if (! $isRoot) {
            $path = $path."->".$root->val;
        }
        if (empty($root->left) && empty($root->right)) {
            $this->ret[] = strval($path);
        } 
        if ($root->left) {
            $this->dfs($root->left, $path);
        }
        if ($root->right) {
            $this->dfs($root->right, $path);
        }
        }
    }
    

    3 思路

    深度优先遍历,或者广度优先遍历都可以

    我这里加了一个函数的变量 isRoot,有点冗余,可以通过优化去掉

    ===

    作者: 吴丹阳 https://www.cnblogs.com/wudanyang

    更新时间: 2020-09-01 Tue 13:35

    Emacs 27.1 (Org mode 9.3.7)

    ===

    天行健,君子以自强不息。

    地势坤,君子以厚德载物。

    ===

  • 相关阅读:
    10分钟教你用VS2017将代码上传到GitHub
    【算法】C++用链表实现一个箱子排序附源代码详解
    【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解
    【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
    【python】10分钟教你用python如何正确把妹
    【python】10分钟教你用python一行代码搞点大新闻
    【python】10分钟教你用python下载和拼接微信好友头像图片
    3. powerdesigner 生成mysql脚本,要求字段、表名有注释
    5. 回填表格复选框
    14. js字符串截取substring用法
  • 原文地址:https://www.cnblogs.com/wudanyang/p/13595701.html
Copyright © 2011-2022 走看看