404. 左葉子之和(某遞迴形式)
計算給定二叉樹的所有左葉子之和。
示例:
3
/ \
9 20
/ \
15 7
在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24
class Solution {
int sum = 0;
public int preSum(TreeNode root,TreeNode last) {
if(root != null){
if(last != null && last.left == root && root.left == null && root.right == null){
sum += root.val;
}
preSum(root.left,root);
preSum(root.right,root);
return sum;
}
return 0;
}
public int sumOfLeftLeaves(TreeNode root) {
if(root == null)
return 0;
return preSum(root,null);
}
}
如果它是父節點的左孩子,ok==》加!
這個形式:有一個全域性變數,計算時不用加遞迴。
另一種形式:
class Solution {
public boolean isLeaf(TreeNode root){
if(root == null)
return false;
if(root.left == null && root.right == null)
return true;
return false;
}
public int sumOfLeftLeaves(TreeNode root) {
if(root == null)
return 0;
if(isLeaf(root.left))
return root.left.val += sumOfLeftLeaves(root.right);
else
return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
}
}
相關文章
- 404. 左葉子之和
- LeetCode-404-左葉子之和LeetCode
- 程式碼隨想錄演算法訓練營第第17天 | 110.平衡二叉樹、257. 二叉樹的所有路徑、404.左葉子之和演算法二叉樹
- 程式碼隨想錄演算法訓練營第十七天| 110. 平衡二叉樹 257. 二叉樹的所有路徑 404. 左葉子之和演算法二叉樹
- model 遞迴子級遞迴
- 遞迴查詢子元素遞迴
- 129 - 求根到葉子節點數字之和 - PythonPython
- day 15|二叉樹part03|110.平衡二叉樹|257. 二叉樹的所有路徑|404.左葉子之和| 222.完全二叉樹的節點個數二叉樹
- leetcode129. 求根到葉子節點數字之和LeetCode
- 【LeetCode】每日一題129:求根到葉子節點數字之和LeetCode每日一題
- 程式碼隨想錄演算法訓練營第十五天| 110.平衡二叉樹,257. 二叉樹的所有路徑, 404.左葉子之和, 222.完全二叉樹的節點個數演算法二叉樹
- 遞迴和尾遞迴遞迴
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 快速排序【遞迴】【非遞迴】排序遞迴
- 第二章 :查詢與排序-------遞迴形式進行插入排序排序遞迴
- 遞迴遞迴
- 左兒子和右兄弟
- 什麼是遞迴?遞迴和迴圈的異同遞迴
- go 遞迴Go遞迴
- JavaScript遞迴JavaScript遞迴
- 理解遞迴遞迴
- 分而治之-遞迴遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 查詢固定條數的某個值之和
- 快速傅立葉變換原理介紹及遞迴程式碼實現遞迴
- 遞迴和遞推總結遞迴
- 迭代與遞迴--你被遞迴搞暈過嗎?遞迴
- 演算法小專欄:遞迴與尾遞迴演算法遞迴
- 遞迴呼叫 VS 迴圈呼叫遞迴
- 程式碼隨想錄day15 || 110 平衡二叉樹,257 二叉樹所有路徑,404 左葉子之和,222 完全二叉樹節點個數二叉樹
- 遞迴總結遞迴
- SQL 遞迴思想SQL遞迴
- 遞迴函式遞迴函式
- 談談遞迴遞迴
- 遞迴問題遞迴
- 遞迴加回溯遞迴
- 遞迴-*快速排序遞迴排序
- 遞迴小記遞迴