• 剑指offer[24]——二叉树中和为某一值的路径


    题目描述

    输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)

    这道题目的思路比较简单,大家可以想一下,如果我们手动去做这道题的话,是怎么做的呢,就是先把所有的路径都数出来,然后再筛选所有符合条件的路径,存储在一个数组中,然后再按数组长度进行排序。

    /* function TreeNode(x) {
        this.val = x;
        this.left = null;
        this.right = null;
    } */
    function FindPath(root, expectNumber) {
        if(!root){return [];}
      let allRoutes = [];
      function sum(arr) {
        let _sum = 0;
        for(let item of arr){
          _sum += item;
        }
        return _sum;
      }
      function findRoute(_root, route) {
        let _route = route.slice(0);
        _route.push(_root.val);
        if (_root.left) { findRoute(_root.left, _route); }
        if (_root.right) { findRoute(_root.right, _route); }
        if (!_root.left && !_root.right) { allRoutes.push(_route); }
      }
      let r = [];
      findRoute(root, r);
      return allRoutes.filter(item => {
        return sum(item) == expectNumber;
      });
    }
    
  • 相关阅读:
    Python学习笔记013_正则表达式
    Python学习笔记012_网络_异常
    Python学习笔记011_模块_标准库_第三方库的安装
    Python学习笔记010_迭代器_生成器
    PHP extract() 函数
    php 获取客户端IP
    php array_walk
    PHP array_map()
    PHP call_user_func
    类的更新----MVC设计模式
  • 原文地址:https://www.cnblogs.com/Jacob98/p/12502418.html
Copyright © 2020-2023  润新知