zoukankan      html  css  js  c++  java
  • Path Sum II leetcode java

    题目

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

    For example:
    Given the below binary tree and sum = 22,
                  5
                 / 
                4   8
               /   / 
              11  13  4
             /      / 
            7    2  5   1
    

    return

    [
       [5,4,11,2],
       [5,8,4,5]
    ]

    题解
    这道题除了要判断是否有这样的一个path sum,还需要把所有的都可能性结果都返回,所以就用传统的DFS递归解决子问题。代码如下:
     1     public void pathSumHelper(TreeNode root, int sum, List <Integer> sumlist, List<List<Integer>> pathlist){
     2         if(root==null
     3             return;
     4         sumlist.add(root.val);
     5         sum = sum-root.val;
     6         if(root.left==null && root.right==null){
     7             if(sum==0){
     8                 pathlist.add(new ArrayList<Integer>(sumlist));
     9             }
    10         }else{
    11             if(root.left!=null)
    12                 pathSumHelper(root.left,sum,sumlist,pathlist);
    13             if(root.right!=null)
    14                 pathSumHelper(root.right,sum,sumlist,pathlist);
    15         }
    16         sumlist.remove(sumlist.size()-1);
    17     }
    18     
    19     public List<List<Integer>> pathSum(TreeNode root, int sum) {
    20         List<List<Integer>> pathlist=new ArrayList<List<Integer>>();
    21         List<Integer> sumlist = new ArrayList<Integer>();
    22         pathSumHelper(root,sum,sumlist,pathlist);
    23         return pathlist;
    24     }

  • 相关阅读:
    基于讯飞语音API应用开发之——离线词典构建
    在Linux下安装redis
    java学习路线
    怎么做压力测试
    性能测试概念及参数介绍
    总结1-JMeter压力测试
    在软件测试面试过程中如何进行自我介绍?
    Python模块常用的几种安装方式
    Jmeter(三)关联数组
    Jmeter(二)关联
  • 原文地址:https://www.cnblogs.com/springfor/p/3879827.html
Copyright © 2011-2022 走看看