目录
一、问题描述
二、解题思路
三、代码实现
四、刷题链接
一、问题描述
二、解题思路
此题属于树遍历的简单题,用递归深度遍历的方式,当遇到左叶子结点(在递归函数中加上一个判断当前结点是左结点还是右结点的标记位),此时加上当前结点值,更新返回值即可。
三、代码实现
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
int resSum=0;
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型
*/
public int sumOfLeftLeaves (TreeNode root) {
// write code here
dfs(root,false);
return resSum;
}
public void dfs(TreeNode root,boolean isleft){
if(root.left==null&&root.right==null){
if(isleft){
resSum+=root.val;
}
return;
}
if(root.left!=null){
dfs(root.left,true);
}
if(root.right!=null){
dfs(root.right,false);
}
}
}
四、刷题链接
左叶子之和_牛客题霸_牛客网