描述:
输入123456
输出654321
利用堆栈实现链表反转
a=[]
a.append(1)
a.append(2)
a.append(3)
a.append(4)
while(a):
print(a.pop())
自定义链表
class node():
def __init__(self, elem, next=None):
if isinstance(elem, int):
self.elem = elem
self.next = next
elif isinstance(elem, list):
self.elem = elem[0]
self.next = None
curr = self
for i in range(1, len(elem)):
pre = node(elem[i])
curr.next = pre
curr = curr.next
def chain_reverse(curr):
if curr == None or curr.next == None:
return curr
pre = None
next = None
while (curr != None):
next = curr.next
curr.next = pre
pre = curr
curr = next
return pre
if __name__ == '__main__':
L = node(1)
L.next = node(2)
L.next.next = node(3)
L.next.next.next = node(4)
res = node.chain_reverse(L)
print(res.elem, res.next.elem, res.next.next.elem, res.next.next.next.elem)
while res:
print(res.elem,end=' ')
res = res.next
print()
lista = [1, 2, 3, 4, 5, 6]
List_a = node(lista)
res1 = node.chain_reverse(List_a)
while res1:
print(res1.elem,end=' ')
res1 = res1.next