O(n) && O(h)