首页 > 其他 > 详细

113. 路径总和 II

时间:2021-01-11 18:20:07      阅读:21      评论:0      收藏:0      [点我收藏+]

113. 路径总和 II

//给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 
//
// 说明: 叶子节点是指没有子节点的节点。 
//
// 示例: 
//给定如下二叉树,以及目标和 sum = 22, 
//
//               5
//             / //            4   8
//           /   / //          11  13  4
//         /  \    / //        7    2  5   1
// 
//
// 返回: 
//
// [
//   [5,4,11,2],
//   [5,8,4,5]
//]
// 
// Related Topics 树 深度优先搜索 
// ?? 405 ?? 0

DFS

class Solution {
    //存放每一条结果集
    LinkedList<List<Integer>> ret = new LinkedList<List<Integer>>();
    //存放一条路径
    LinkedList<Integer> path = new LinkedList<Integer>();

    public List<List<Integer>> pathSum(TreeNode root, int sum) {
        dfs(root, sum);
        return ret;
    }

    //dfs
    public void dfs(TreeNode root, int sum) {
        if (root == null) return;
        //在该列表的末尾插入指定的元素
        path.offerLast(root.val);
        sum -= root.val;
        //找到目标值的 叶子几点
        if (root.left == null && root.right == null && sum == 0) {
            //添加路径到 结果集中
            ret.add(new LinkedList<Integer>(path));
        }
        dfs(root.left, sum);
        dfs(root.right, sum);
        //检索并删除此列表的最后一个元素,如果此列表为空,则返回 null
        path.pollLast();
    }
}

113. 路径总和 II

原文:https://www.cnblogs.com/nayou/p/14261969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!