// 定义一个名为Solution的类
class Solution {// 定义一个公开的方法sumOfLeftLeaves,接受一个树节点类型的参数root,返回一个整数值public int sumOfLeftLeaves(TreeNode root) {// 基线条件:如果根节点为空,则返回0,因为没有叶子节点if (root == null) {return 0;}// 递归计算左子树中所有左叶子节点的值之和int leftValue = sumOfLeftLeaves(root.left); // 访问左子树// 递归计算右子树中所有左叶子节点的值之和int rightValue = sumOfLeftLeaves(root.right); // 访问右子树// 初始化midValue为0,用于存储当前节点的左子节点(若其为叶子节点)的值int midValue = 0;// 判断当前节点的左子节点是否为叶子节点(既没有左子节点,也没有右子节点)if (root.left != null && root.left.left == null && root.left.right == null) {// 如果是叶子节点,则将其值赋给midValuemidValue = root.left.val;}// 计算当前节点的左叶子节点值(midValue)、左子树所有左叶子节点值之和(leftValue)及右子树所有左叶子节点值之和(rightValue)的总和int sum = midValue + leftValue + rightValue;// 返回当前节点及其子树的左叶子节点值之和return sum;}
}// TreeNode是一个假设存在的类,代表二叉树的节点,包含val(节点值)和left/right(指向左右子节点的引用)
这个方法的主要作用是计算一棵二叉树中所有左叶子节点的值之和。采用深度优先搜索(DFS)策略,通过递归遍历整棵树,当遇到满足条件的左叶子节点(无左右子节点)时,将它的值加入到总和中。