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.
Solution One: Recursive timeout
The code is as follows:
/** * Definition for a binary tree node. * public class TreeNode {* int val, * TreeNode left, * TreeNode right; * TreeNode (int x) {val = x;} *} */public class Solution {public int countnodes (TreeNode root) { if (root==null) return 0; int num1=0,num2=0; Num1=count (root.left); Num2=count (root.right); return 1+num1+num2; } int count (TreeNode root) { if (root==null) return 0; int num1=0,num2=0; if (root.left==null && root.right==null) return 1; if (root.left!=null) num1=count (root.left); if (root.right!=null) num2=count (root.right); return 1+num1+num2;} }
Operation Result:
Solution Two: Hierarchy traversal, queue, timeout
The code is as follows:
/** * Definition for a binary tree node. * public class TreeNode {* int val, * TreeNode left, * TreeNode right; * TreeNode (int x) {val = x;} *} */public class Solution {public int countnodes (TreeNode root) { if (root==null) return 0; Queue<treenode> q=new linkedlist<> (); Q.offer (root); int num=1; TreeNode Tmp=null; while (!q.isempty ()) { tmp=q.poll (); if (tmp.left!=null) { q.offer (tmp.left); num++; } if (tmp.right!=null) { q.offer (tmp.right); num++; } } return num; } }
Solution three: To be continued
(Medium) Leetcode 222.Count Complete Tree Nodes