# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def countNodes(self, root: TreeNode) -> int:
if not root:
return 0
#BFS
queue = deque()
queue.append(root)
count=0
while queue:
node = queue.popleft()
count+=1
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return count
#DFS
return 1+self.countNodes(root.left)+self.countNodes(root.right)
总结:没有看明白二分法的方法,因此采用暴力BFS和DFS。