1. 程式人生 > >【LeetCode】【222】【Count Complete Tree Nodes】

【LeetCode】【222】【Count Complete Tree Nodes】

class TreeNode {
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode(int x) { val = x; }
}
    public int countNodes(TreeNode root) {
        if(root == null) return 0;
        int h = height(root);
        if(height(root.left ) == height(root.right))
            return (h-1>0?1<<h-1:1) + countNodes(root.right);
        else
            return (h-2>0?1<<h-2:1) + countNodes(root.left);
    }
    public int height(TreeNode root){
        return root == null?0:1+height(root.left);
    }