Given a complete binary tree, count the number of nodes.
Definition of a complete binary tree from Wikipedia:
In a complete binary tree every level, except possibly the last, was completely filled, and all nodes As far left as possible. It can has between 1 and 2h nodes inclusive at the last level H.
1 /**2 * Definition for a binary tree node.3 * public class TreeNode {4 * int val;5 * TreeNode left;6 * TreeNode right;7 * TreeNode (int x) {val = x;}8 * }9 */Ten Public classSolution { One Public intcountnodes (TreeNode root) { A - intLeftdepth =leftdepth (root); - intRightdepth =rightdepth (root); the - if(Leftdepth = =rightdepth) { - return(1<< leftdepth)-1; - } + return 1+ countnodes (root.left) +countnodes (root.right); - + } A at Private intrightdepth (TreeNode root) { - intdepth =0; - while(Root! =NULL) { -Root =Root.right; -depth++; - } in returndepth; - } to + Private intleftdepth (TreeNode root) { - intdepth =0; the while(Root! =NULL) { *Root =Root.left; $depth++;Panax Notoginseng } - returndepth; the } +}
Count Complete Tree Nodes