/* 递归解法O(n)1. 如果二叉树为空,则节点个数为0;2. 如果二叉树不为空,则二叉树节点数 = 左子树节点个数 + 右子树节点个数+ 1*/public static int getNodeNumRec(TreeNode root){ if(root == null){//二叉树为null return 0; }else{//二叉树不为null return getNodeNumRec(root.left)+getNodeNumRec(root.right) + 1; }}/* 迭代解法 O(n)基本思想同 LevelOrderTraversal,即用一个Queue,在Java里面可以用LinkedList来模拟*/public static int getNodeNum(TreeNode root){ if(root == null){ return 0; } int count = 1; Queuequeue = new LinkedList (); queue.add(root); while(!queue.isEmpty()){ TreeNode cur = queue.remove(); if(cur.left != null){ queue.add(cur.left); count++; } if(cur.right != null){ queue.add(cur.right); count++; } } return count;}