思路 求的是左叶子节点的和,所以应该用后序遍历。
1.确定递归参数和返回值
【LeetCode|LeetCode404. 左叶子之和】返回值:就是左叶子之和。int类型
参数就是当前节点和左叶子的和。
2.递归终止条件
当前节点是nul时返回0;
3.单层递归的含义
如果当前节点的左孩子不为空并且左孩子的左右孩子都是null,就说明当前节点的左孩子是左叶子。就获取其值。
代码
/**
* 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 {
public int sumOfLeftLeaves(TreeNode root) {
if(root == null){
return 0;
}
int res = 0;
res =fun(root,res);
return res;
}
public int fun(TreeNode temp,int res){
if(temp == null){
return 0;
}
res += fun(temp.left,res)+fun(temp.right,res);
if(temp.left != null && temp.left.left == null && temp.left.right == null){
res +=temp.left.val;
}
return res;
}
}
推荐阅读
- leetcode|【LeetCode】118. 杨辉三角(js 实现)
- c++|leetcode452之番外
- leetcode之Find All Numbers Disappeared in an Array
- [LeetCode] Find Anagram Mappings 寻找异构映射
- [LeetCode] 42. Trapping Rain Water 收集雨水
- [leetcode712]202. Happy Number判断快乐数字
- [leetcode] Hash Table-760. Find Anagram Mappings
- [LeetCode]202. Happy Number
- LeetCode 202. Happy Number