求二叉樹中葉子節點的個數
阿新 • • 發佈:2019-05-11
right alert sys print () null 運行 write binary
求二叉樹中葉子節點的個數
面試題二叉樹
題目描述
求二叉樹中葉子節點的個數。
葉子節點的定義:如果一個節點既沒有左孩子,也沒有右孩子,則該節點為葉子節點。
示例:
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
參考資料
- https://www.geeksforgeeks.org/write-a-c-program-to-get-count-of-leaf-nodes-in-a-binary-tree/
求二叉樹中葉子節點的個數