leetcode第37題(path-sum-ii)
題目:
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 andsum = 22,
5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
思路:注意前序遍歷,返回前面一個狀態,遞迴
程式碼:
public class Solution { ArrayList<ArrayList<Integer>> res = new ArrayList<>(); public ArrayList<ArrayList<Integer>> pathSum(TreeNode root, int sum) { ArrayList<Integer> list = new ArrayList<Integer>(); paths(root, sum, list); returnres; } private void paths(TreeNode root, int sum, ArrayList<Integer> list){ if(root == null) return; if(root.left == null && root.right == null && sum - root.val == 0){ list.add(root.val); res.add(new ArrayList<Integer>(list)); list.remove(list.size() - 1); return; } list.add(root.val); paths(root.left, sum - root.val, list); paths(root.right, sum - root.val, list); list.remove(list.size() - 1); } }
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 andsum = 22,
5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
相關推薦
leetcode第37題(path-sum-ii)
題目: 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
leetcode第四題(383. Ransom Note)
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the rans
LeetCode第85題(最大矩形)
原題如下: 給定一個僅包含 0 和 1 的二維二進位制矩陣,找出只包含 1 的最大矩形,並返回其面積。 示例: 輸入: [ [“1”,“0”,“1”,“0”,“0”], [“1”,“0”,“1”,“1”,“1”], [“1”,“1”,“1”,“1”,“1”],
LeetCode第39題之Combination Sum(兩種方法)
思路:兩種方法都是利用遞歸回溯,第二方法在第一種方法的基礎上對原始資料先進行排序,這樣可以剪枝,加快計算速度。第一種方法在LeetCode上測試執行的時間是24ms,第二種方法執行時間為16ms。 方
【LeetCode每天一題】Combination Sum II(組合和II)
turn mic and microsoft str find get break .so Given a collection of candidate numbers (candidates) and a target number (target), find all
LeetCode-Easy刷題(26) Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given
LeetCode第87題(擾亂字串)
原題如下: 給定一個字串 s1,我們可以把它遞迴地分割成兩個非空子字串,從而將其表示為二叉樹。 下圖是字串 s1 = “great” 的一種可能的表示形式。 great / gr eat / \ / g r e at / a
LeetCode刷題——第十三題(羅馬數字轉整數)
13.羅馬數字轉整數 題目描述 思路 程式碼示例 題目描述 羅馬數字包含以下七種字元: I
LeetCode刷題——第九題(迴文數)
9.迴文數 題目描述 思路 程式碼示例 題目描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2:
leetcode 第105題(從前序與中序遍歷序列構造二叉樹) ,第106題(從中序與後序遍歷序列構造二叉樹)python解法(用時40ms)
leetcode 第105題(從前序與中序遍歷序列構造二叉樹) ,第106題(從中序與後序遍歷序列構造二叉樹)python解法(用時40ms) 先從105題開始: 第105題是利用前序和中序恢復二叉樹,主要還是應用遞迴的思想。 首先看一個簡單的例子,在如下樹中: 由於前序遍歷第一個
LeetCode刷題記錄——第374題(猜數字大小)
題目描述 我們正在玩一個猜數字遊戲。 遊戲規則如下: 我從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。 每次你猜錯了,我會告訴你這個數字是大了還是小了。 你呼叫一個預先定義好的介面 guess(int num),它會返回 3 個可能的結果(-1,1 或 0):
LeetCode刷題記錄——第342題(4的冪)
給定一個整數 (32 位有符號整數),請編寫一個函式來判斷它是否是 4 的冪次方。 示例 1: 輸入: 16 輸出: true 示例 2: 輸入: 5 輸出: false 思路分析 跟3的冪一模一樣的啦,詳情請見之前的部落格
LeetCode刷題記錄——第326題(3的冪)
題目描述 給定一個整數,寫一個函式來判斷它是否是 3 的冪次方。 示例 1: 輸入: 27 輸出: true 示例 2: 輸入: 0 輸出: false 示例 3: 輸入: 9 輸出: true 示例 4:
【LeetCode】LeetCode——第1題:Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numb
leetcode第31題(triangle)
題目: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For e
leetcode第47題(binary-tree-level-order-traversal)
題目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example
leetcode第50題(recover-binary-search-tree)
題目: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note:A soluti
leetcode第49題(same-tree)
題目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are stru
leetcode第43題(binary-tree-level-order-traversal)
題目: Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in
LeetCode第101題(對稱二叉樹)
原題如下: 給定一個二叉樹,檢查它是否是映象對稱的。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / 2 2 / \ / 3 4 4 3 但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的: 1 / 2