leetcode 113. 路径总和 II
生活随笔
收集整理的這篇文章主要介紹了
leetcode 113. 路径总和 II
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
難度:中等
頻次:60
題目:
給你二叉樹的根節點 root 和一個整數目標和 targetSum ,找出所有 從根節點到葉子節點 路徑總和等于給定目標和的路徑。
葉子節點 是指沒有子節點的節點。
解題思路:DFS 遞歸
注意:
- 遞歸結束條件
- 添加到res的條件
- Deque 的用法 offerLast pollLast
- 一棵樹的左右節點遍歷完要把root從隊列里poll出來
代碼
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {List<List<Integer>> res=new LinkedList<List<Integer>>();Deque<Integer> temp=new LinkedList<Integer>();public List<List<Integer>> pathSum(TreeNode root, int targetSum) {DFS(root,targetSum);return res;}public void DFS(TreeNode root,int targetSum){//先判斷迭代停止條件if(root==null){ return;}//非空添加該節點到temptemp.offerLast(root.val);//做減法targetSum-=root.val;//判斷是否為葉子節點并且是否targetSum為0if(root.left==null&&root.right==null&&targetSum==0){//將deque轉化成LinkedListres.add(new LinkedList<Integer>(temp));}DFS(root.left,targetSum);DFS(root.right,targetSum);//其實模擬棧temp.pollLast();} }總結
以上是生活随笔為你收集整理的leetcode 113. 路径总和 II的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 151. 翻转字符串里
- 下一篇: leetcode 226. 翻转二叉树