二叉树是一种常见的数据结构,通过Java程序可以轻松地实现二叉树相关的操作。其中一种操作就是求二叉树的最浅叶节点的和。下面我们将讲解如何使用Java代码实现这一操作。
public class TreeNode {
int val; //节点值
TreeNode left; //左子树
TreeNode right; //右子树
TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
public int sumOfLeftLeaves(TreeNode root) {
if (root == null) {
return 0;
}
int sum = 0;
if (root.left != null && root.left.left == null && root.left.right == null) {
sum += root.left.val;
}
sum += sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
return sum;
}
以上代码首先定义了一个二叉树节点类TreeNode,包括节点值、左子树和右子树三个属性。接下来是sumOfLeftLeaves方法的具体实现。该方法首先判断二叉树的根节点是否为空,如果为空则直接返回0。
接着定义一个变量sum,用于累加最浅叶节点的值。如果二叉树的根节点左子树不为空、左子树的左子树和右子树都为空,则说明左子树是二叉树的最浅叶节点。此时将其值加入sum中。
最后,将二叉树的左子树和右子树继续递归调用sumOfLeftLeaves方法,并将它们的结果累加到sum中。最终返回sum即为二叉树最浅叶节点的和。