Path Sum II(****)
来源:互联网 发布:ipad淘宝怎么收藏店铺 编辑:程序博客网 时间:2024/05/16 17:24
题目: root 到 叶子节点 sum = 给定值 , 返回各个节点值
思路:
1. 前序遍历 , 用一个链表来存储依次遍历的值,直到叶子节点,然后计算链表的和
2. 也就是说,链表存的,就是root到当前 叶子节点所经历的节点的val
3. 所以,在遍历的过程 , 还必须记得remove List中值 == > List == Stack!
public class Solution { public List<List<Integer>> pathSum(TreeNode root, int sum) { List<List<Integer>> result = new ArrayList<> (); // 存放遍历各个节点的val LinkedList<Integer> list = new LinkedList<> (); getPath(root , sum , result , list); return result; } void getPath(TreeNode root , int sum , List<List<Integer>> result , LinkedList<Integer> list) { if(root == null) return ; list.add(root.val); if(root.left == null && root.right == null) { LinkedList<Integer> tmp = new LinkedList<> (); if(sum == getSumOfList(list)) { tmp.addAll(list); result.add(tmp); } return ; } getPath(root.left , sum , result , list); // remove !! list.removeLast(); getPath(root.right , sum , result , list); list.removeLast(); } // 计算存储各个节点val的链表sum int getSumOfList(List<Integer> list) { int sum = 0; for(Integer t : list) { sum += t; } return sum; }}
0 0
- LeetCode: Path Sum II
- LeetCode Path Sum II
- [Leetcode] Path Sum II
- LeetCode: Path Sum II
- Path Sum II
- [LeetCode] Path Sum II
- 【leetcode】Path Sum II
- [113]Path Sum II
- Path Sum II
- Path Sum II
- [LeetCode]Path Sum II
- Path Sum II
- Path Sum II
- [Leetcode]Path Sum II
- [leetcode]Path Sum II
- Path Sum II
- Leetcode: Path Sum II
- Path Sum II
- Android Studio 入门整理
- 线性表的存储
- Intent简要介绍
- 第3周工作周报
- shell 基础(一)
- Path Sum II(****)
- 计算机应届生必看
- 如何提交高质量的软件缺陷(Bug)记录
- poj1611 The Suspects 并查集
- Sqlite、以及系统常用的几个服务
- HDU 1003 Max Sum【贪心】
- uva10375 Choose and Divide(唯一分解定理)
- 内存设置好可以为电脑提速
- Activity生命周期