zoukankan      html  css  js  c++  java
  • leetcode 113. Path Sum II (路径和) 解题思路和方法

    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一脉同源。仅仅是改变了下题目的描写叙述。详细思路是用回溯法,将所有的节点所有遍历。

    详细思路和代码例如以下:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
    	/**
    	 * 回溯法求解
    	 * 总体思想是遍历。然后加入list逐一试探
    	 * 符合要求的加入结果集
    	 * 不符合要求的删除,然后回溯
    	 */
        List<List<Integer>> list = new ArrayList<List<Integer>>();
        public List<List<Integer>> pathSum(TreeNode root, int sum) {
            if(root == null){
                return list;
            }
            path(root,sum,new ArrayList<Integer>());
            return list;
        }
        
        private void path(TreeNode root,int sum, List<Integer> al){
            if(root == null){
                return;
            }
            if(root.val == sum){
                if(root.left == null && root.right == null){
                	al.add(root.val);
                	//加入结果一定要又一次生成实例
                    list.add(new ArrayList<Integer>(al));
                    al.remove(al.size()-1);//删除
                    return;
                }
            }
            al.add(root.val);
            path(root.left,sum - root.val,al);
            path(root.right,sum - root.val,al);
            al.remove(al.size()-1);//一定要删除,确保回溯准确
        }
    }




  • 相关阅读:
    生成证书命令keytool
    ACWEB使用HTTPS登录
    https登陆
    java调用webservice接口方法
    项目调研的误区和关键点
    成功的多项目管理
    如何向卖场贩卖多重价值
    零售业如何在淡季做出销量?
    如何进行项目调研
    项目经理的职业化优势
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8376673.html
Copyright © 2011-2022 走看看