zoukankan      html  css  js  c++  java
  • 待解决)leetcode 路径和 dfs 线序遍历

    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]
    ]

    1。下面的搜索总超时,可能我写的不好

     1 /**
     2  * Definition for binary tree
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     ArrayList<ArrayList<Integer>> list=new ArrayList<ArrayList<Integer>>();
    12      ArrayList<Integer> arry=new ArrayList<Integer>();
    13      
    14     public List<List<Integer>> pathSum(TreeNode root, int sum) {
    15         
    16         if(root==null) return (List)list;
    17         if(root.right==null&&root.left==null)
    18         {
    19             if(sum==root.val)
    20             {
    21             
    22             list.add(new ArrayList(arry));
    23             }
    24         }
    25        
    26            arry.add(root.val);
    27         pathSum(root.right,sum-root.val);
    28       
    29         
    30         pathSum(root.left,sum-root.val);
    31         
    32         
    33         return (List)list;
    34         
    35        
    36        
    37         
    38         
    39     }
    40     
    41     
    42     
    43 }
    View Code
    iew Co
     
     
  • 相关阅读:
    程序数据集算地数据库
    使用属性升级mybank
    第一个C#程序
    CSS3动画
    定位网页元素的解析
    CSS3中的浮动
    CSS中的盒子模型
    (十三)mybatis 整合 ehcache
    (十二)mybatis 查询缓存
    (十一)延迟加载
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/3838418.html
Copyright © 2011-2022 走看看