Given two binary trees, write a function to check if they are the same or not.
Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
Input: 1 1
/ \ / \
2 3 2 3
[1,2,3], [1,2,3]
Output: true
Input: 1 1
/ \
2 2
[1,2], [1,null,2]
Output: false
Input: 1 1
/ \ / \
2 1 1 2
[1,2,1], [1,1,2]
Output: false
-
Time complexity :
O(2n) = O(n)
. wheren
is a number of nodes in a tree. We visit each node in both trees exactly once. -
Space complexity :
O(log(n)) - best, o(n) worst
. The best case is two completely balanced trees. The worst case is two completely unbalanced trees, to keep a recursion stack.