// time: O(n^2), space: O(n)
(stack):
for i = stack.size() -1, i > 0, i--:
top = stack.pop()
(stack, i, top)
// time: O(n), space: O(n)
(stack, i, top):
if i == 0:
stack.push(top)
return
// no need to check if stack empty
temp = stack.pop()
(stack, i -1, top)
stack.push(temp)
OR
// time: O(n^2), space: O(n)
(stack):
if stack.isEmpty():
return
temp = stack.pop()
(stack)
insertAtBottom(stack, temp)
// time: O(n), space: O(n)
insertAtBottom(stack, x):
if stack.isEmpty():
stack.push(x)
return
temp = stack.pop()
insertAtBottom(stack, x)
stack.push(temp)
[Hat tip to GfG]
No comments:
Post a Comment