int count_complete_binary_tree_nodes(TreeNode root) { if(isNullNode(root)) return 0; int dl = depth(getLeftChildNode(root)); int dr = depth(getRightChildNode(root)); return dl==dr?(1<<dl)+count_complete_binary_tree_nodes(getRightChildNode(root)):(1<<dr)+count_complete_binary_tree_nodes(getLeftChildNode(root)); }
int count_complete_binary_tree_nodes(TreeNode root) { if(isNullNode(root)) return 0; int hleft = height(getLeftChildNode(root)); int hright = height(getRightChildNode(root)); return hleft==hright?(1<<hleft)+count_complete_binary_tree_nodes(getRightChildNode(root)):(1<<hright)+count_complete_binary_tree_nodes(getLeftChildNode(root)); }