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] ]
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<List<Integer>> pathSum(TreeNode root, int sum) { List<List<Integer>> res = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); solve(root, sum, res, list); return res; } private void solve(TreeNode root, int sum, List<List<Integer>> res, List<Integer> list) { if (root == null) { return; } list.add(root.val); sum -= root.val; if (root.left == null && root.right == null) { if (sum == 0) { res.add(new ArrayList<Integer>(list)); } } else { if (root.left != null) { solve(root.left, sum, res, list); } if (root.right != null) { solve(root.right, sum, res, list); } } list.remove(list.size()-1); } }
相关推荐
删除List中的重复值 方法一:循环元素删除 ... i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } }
1. **动态数组**:传统的C++数组在声明时就需要确定大小,并且一旦定义,其大小无法改变。而`std::vector`是C++ STL提供的一种动态数组,可以在运行时动态调整大小,方便地添加或删除元素。 2. **std::vector**:`...
- `remove(int index)`: 删除指定索引的元素,其余元素向前移动。 - `size()`: 返回ArrayList中元素的数量。 - `clear()`: 移除所有元素,使ArrayList变为空。 - `indexOf(Object o)`: 查找指定元素的第一个出现...
mList.add(1); mList.add(2); mList.add(3); mList.add(4); mList.add(5); /** * 正常删除 */ for (int i = 0; i < mList.size(); i++) { if (mList.get(i).equals(3)) { mList.remove(i); } } ...
list.remove("Welcome"); list.add("World"); list.add("aaa"); list.add("bbb"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println(list.indexOf("World...
i < list.size(); i++) { System.out.println(list.get(i) + " "); } Iterator<Integer> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Collections.sort(list); // 对列表...
myMarker._icon.classList.remove('rotate'); }, 3000); ``` 通过这种方式,我们可以结合Esri Leaflet和Leaflet的基本功能,创建具有个性化外观和动态效果的Marker,提升地图的视觉吸引力和交互性。 总结来说,...
if (list.remove(new Long(1L))) { // 元素已删除 } else { // 元素不存在 } ``` 4. **正确用法4 - 使用`List.removeIf(Predicate<? super E> predicate)`** Java 8引入的`removeIf()`方法可以简洁地删除...
my_list.remove("Element1") # 通过对象移除 my_list.pop(0) // 通过索引移除,默认移除最后一个 ``` 4. **访问元素**: - 通过索引访问元素,如 `myList[0]` 在 Python 和 Java 中都可实现。 - Java 中,`get...
i < list.size(); i++) { String element = list.get(i); if ("B".equals(element)) { list.remove(i); // 删除元素 list.add(0, element); // 将元素移到开头 i--; // 调整索引,因为元素位置改变 } } ```...
if ((list2.size() + 1) > 1) { // 如果有重复项 num = Math.max(num, list2.size() + 1); // 更新最大重复次数 } } System.out.println(num); if (num > 1) { System.out.println("存在" + num + "个重复项...
int size = list.size(); // 清空列表 list.clear(); ``` ### 高级特性 #### 1. 子列表 ```java // 获取子列表 List<String> subList = list.subList(0, 3); ``` #### 2. 排序 ```java // 自然排序 ...
- `remove(index)` 方法:根据索引移除元素,如 `list.remove(1)`,这会删除索引1处的元素。 - `remove(Object o)` 方法:根据对象引用移除第一个匹配的元素,如 `list.remove(new Integer(5))`,这会删除值为5的...
1. SAPI module specific location. ; 2. The PHPRC environment variable. (As of PHP 5.2.0) ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) ; 4. Current working directory (except ...
int listSize = myList.size(); ``` 列表排序,如果元素是可比较的,可以使用`Collections.sort(List<T> list)`: ```java Collections.sort(myList); ``` `List`接口还有许多其他方法,如`set(int index, E ...
3. 删除元素:`list.remove(1);` 4. 判断是否包含指定元素:`if (list.contains("Orange")) { ... }` 5. 获取列表大小:`System.out.println("Size of the List: " + list.size());` 6. 获取/修改指定位置上的元素:...
:)26/3/981.6.1- Added a FUNCFileName private variable to manage the complete path of the attached file. I receive problems reports with this, it work now ?.- Reduced the line sleep to 30 (tell me if ...
1) Uninstall any previous version of BurnInTest 2) Double click (or Open) the downloaded ".exe" file 3) Follow the prompts UnInstallation ============== Use the Windows control panel, Add / Remove ...
27 | [Remove Element](https://leetcode.com/problems/remove-element/) | [C++](./C++/remove-element.cpp) [Python](./Python/remove-element.py) | _O(n)_ | _O(1)_ | Easy || 31 | [Next Permutation]...
int size = list.size(); ``` `size()`方法返回`List`中的元素数量,即`List`的大小。 #### 3. 添加元素 ```java list.add(e); ``` `add(e)`方法将指定元素`e`添加到列表的末尾。如果成功添加,则返回`true`。 ```...