zoukankan      html  css  js  c++  java
  • 剑指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;
      });
    }
    
  • 相关阅读:
    0004- NTFS FAT32
    0003-SQLServer 安装硬件要求
    php文件上传
    PHP 全局变量
    PHP 数组和数组排序
    PHP 函数
    PHP判断语句及循环语句
    PHP(一)
    HTTP请求组成
    扫描器的意义和利用思维
  • 原文地址:https://www.cnblogs.com/Jacob98/p/12502418.html
Copyright © 2011-2022 走看看