求二叉樹中葉子節點的個數
面試題二叉樹
題目描述
求二叉樹中葉子節點的個數。
葉子節點的定義:如果一個節點既沒有左孩子,也沒有右孩子,則該節點為葉子節點。
示例:
3
/ \
9 20
/ \
15 7
在這個二叉樹中,葉子節點有 9,15,7,所以返回 3。
Java 實現
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
class Solution {
public int getLeafCount(TreeNode root) {
if (root == null) {
return 0;
}
if (root.left == null && root.right == null) {
// 輸出葉子節點
System.out.println("leaf nodes:" + root.val);
return 1;
}
return getLeafCount(root.left) + getLeafCount(root.right);
}
}
public class Test {
public static void main(String[] args) {
Solution tree = new Solution();
/* create a tree */
TreeNode root = new TreeNode(3);
root.left = new TreeNode(9);
root.right = new TreeNode(20);
root.right.left = new TreeNode(15);
root.right.right = new TreeNode(7);
System.out.println(tree.getLeafCount(root));
}
}
運行結果
leaf nodes:9 leaf nodes:15 leaf nodes:7 3
相似題目
參考資料