Take this python code as an example
def count_nodes(node: Node):
if(node is None):
return 0
return 1 count_nodes(node.left) count_nodes(node.right)
On the leafs, the recursion will point to left and right and return 0
Soo in a very big binary tree the time complexity will be:
o(n) the number of leafs * 2
Is that correct?, or I am misunderstanding the idea of time complexity
CodePudding user response:
In this example, you attached you are traversing only those nodes which are valid (or which exists), so in this case if you have n nodes you are traversing only n nodes.
It's no way wrong to write: o(n) the number of leafs * 2 but eventually it would become: o(n) in terms of Big-O.
