zoukankan      html  css  js  c++  java
  • 二叉树的路径和

     1 /**
     2 * Definition of TreeNode:
     3 * public class TreeNode {
     4 *     public int val;
     5 *     public TreeNode left, right;
     6 *     public TreeNode(int val) {
     7 *         this.val = val;
     8 *         this.left = this.right = null;
     9 *     }
    10 * }
    11 */
    12 public class Solution {
    13     /*
    14      * @param root: the root of binary tree
    15      * @param target: An integer
    16      * @return: all valid paths
    17      */
    18     private int sum = 0;
    19     private List<List<Integer>> result = new ArrayList<List<Integer>>();
    20     private List<Integer> path = new ArrayList<Integer>();
    21     public List<List<Integer>> binaryTreePathSum(TreeNode root, int target) {
    22         // write your code here
    23         calculate(root, target);
    24         return result;
    25     }
    26     
    27     public void calculate(TreeNode node, int target) {
    28         if(node != null) {
    29             sum += node.val;
    30             path.add(node.val);
    31             if (sum == target && node.left == null && node.right == null) {
    32                 List<Integer> temp = new ArrayList<Integer>(path);   //拷贝path
    33                 result.add(temp);
    34                 sum -= node.val;                //回溯到父节点状态
    35                 path.remove(path.size()-1);     //回溯到父节点状态
    36                 return;
    37             }
    38             if (node.left == null && node.right == null) {
    39                 sum -= node.val;               //回溯到父节点状态
    40                 path.remove(path.size()-1);    //回溯到父节点状态
    41                 return;
    42             }
    43             calculate(node.left, target);
    44             calculate(node.right, target);
    45             sum -= node.val;                   //回溯到父节点状态
    46             path.remove(path.size()-1);        //回溯到父节点状态
    47         }
    48     }
    49 }

    代码有点乱,有待改进。 

  • 相关阅读:
    Django的路由层(URLconf)
    Django简介
    web应用和http协议
    浅谈css中浮动和清除浮动带来的影响
    Bootstrap组件介绍
    jquery的Ajax
    spark新能优化之广播共享数据
    spark新能优化之reduceBykey和groupBykey的使用
    spark新能优化之shuffle新能调优
    spark新能优化之数据本地化
  • 原文地址:https://www.cnblogs.com/neilshi/p/7802974.html
Copyright © 2011-2022 走看看