二叉樹是一種常見的數據結構,通過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即為二叉樹最淺葉節點的和。