LeetCode-113. Path Sum II

来源:互联网 发布:电路图软件 编辑:程序博客网 时间:2024/06/10 07:50

题目描述

Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.题目及实例

解题思路

该题目与LeetCode-112有着相同的思路,只不过本题目需要将满足条件的路径上所有节点的值输出。

代码

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    List<List<Integer>> result = new LinkedList<List<Integer>>();    public List<List<Integer>> pathSum(TreeNode root, int sum) {        if(root==null)            return result;        pathSum(root,sum,new LinkedList<Integer>());        return result;    }    public void pathSum(TreeNode root,int sum,List<Integer> tmp){        if(root == null)            return;        if(root.left == null && root.right == null && root.val == sum){            tmp.add(root.val);//添加当前节点值            result.add(new LinkedList<Integer>(tmp));            tmp.remove(tmp.size()-1);//删除当前节点值            return;        }        tmp.add(root.val);//添加当前节点值        pathSum(root.left,sum-root.val,tmp);        pathSum(root.right,sum-root.val,tmp);        tmp.remove(tmp.size()-1);//删除当前节点值    }}
原创粉丝点击