Trying to figure out why complexity is O(n) for this code:
int sum(Node node) {
    if (node == null) {
      return 0;
    }
    return sum(node.left) + node.value + sum(node.right);
}
Node is:
class Node {
  int value;
  Node left;
  Node right;
}
This is from CCI book. Shouldn't it be O(2^n) since it iterates through each node?
Yet this one is O(2^n), which is clear to me why:
int f(int n) {
 if (n <= 1) {
  return 1;
}
 return f(n - 1) + f(n - 1);
}
Thanks for help.
 
     
    