【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】
来源:互联网 发布:淘宝涉水批文 编辑:程序博客网 时间:2024/06/05 02:21
【113-Path Sum II(路径和II)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
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]]
题目大意
给定一棵二叉树和一个和,判断从树的根结点到叶子结点的所有结点的和是否等于给定的和,如果等于就记录这条路径。
解题思路
对树进行遍历,并且使用回溯法进行求解。
代码实现
树结点类
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}
算法实现类
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class Solution { private List<List<Integer>> result; private List<Integer> l; private int sum; private int curSum = 0; public List<List<Integer>> pathSum(TreeNode root, int sum) { result = new LinkedList<>(); if (root != null) { this.sum = sum; l = new LinkedList<>(); pathSum(root); } return result; } private void pathSum(TreeNode root) { if (root != null) { l.add(root.val); curSum += root.val; if (root.left == null && root.right == null && curSum == sum) { List<Integer> list = new LinkedList<>(); for (Integer i : l) { list.add(i); } result.add(list); } if (root.left != null) { pathSum(root.left); } if (root.right != null) { pathSum(root.right); } curSum -= root.val; l.remove(l.size() - 1); // 删除最后一个 } }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47438073】
2 0
- 【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- 【LeetCode-面试算法经典-Java实现】【112-Path Sum(路径和)】
- 【LeetCode-面试算法经典-Java实现】【063-Unique Paths II(唯一路径问题II)】
- leetcode:Path Sum II (路径之和,记录结果路径)【面试算法题】
- LeetCode Path Sum II路径和II
- leetcode 113. Path Sum II-路径和|回溯算法
- leetcode:Path Sum (路径之和) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【001-Two Sum(求两个数的和)】
- 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
- 【LeetCode-面试算法经典-Java实现】【018-4Sum(四个数的和)】
- 【LeetCode-面试算法经典-Java实现】【216-Combination Sum III (组合数的和)】
- LeetCode | Path Sum II(路径和2)
- LeetCode OJ 之 Path Sum II (路径和 - 二)
- LeetCode 113. Path Sum II(路径和)
- 【leetcode】113Path Sum II(DFS输出路径)
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- GitHub上史上最全的Android开源项目分类汇总
- ds18b20驱动终于写好了
- LeetCode 题解(159): Partition List
- CodeForces 429B()
- 多线程
- 【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】
- 【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
- 【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】
- 【转】TalkingData灵动分析-开启无码分析新纪元
- 【高德地图API】如何解决坐标转换,坐标偏移?
- sql生成器(含注释)问题修复版
- 2 - Add Two Numbers
- HUNAN OJ 11567 Escaping
- cocoapods install