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     }

  • 相关阅读:
    正则基础之——反向引用
    zend framework 配置连接数据库
    Zend Framework Module之多模块配置
    zend framework 1.10项目配置与经典hello world
    CSS3 @font-face
    js跳转页面方法(转)
    CSS中怎么让DIV居中
    HTML段落自动换行的样式设置
    PHPEXCEL实例-导出EXCEL
    移动端框架篇-控制父容器的滑屏框架-slip.js
  • 原文地址:https://www.cnblogs.com/springfor/p/3879827.html
Copyright © 2011-2022 走看看