题目:
例如给定链表为1->2->3->4->5->6->7,翻转结果为2->1->4->3->6->5->7。
思路:
虚线指next域指向变化。改变next指向直接调换顺序。
"""
Created on Fri Jul 3 09:25:53 2020
@author: Melanie
"""
class Lnode():
def __init__(self,x):
self.data=x
self.next=None
#相邻元素翻转
def reverse(head):
if head==None or head.next==None:
return
pre=head
cur=head.next
nex=None
while cur!=None and cur.next!=None:
nex=cur.next.next
pre.next=cur.next
cur.next.next=cur
cur.next=nex
pre=cur
cur=nex
if __name__=="__main__":
i=1
head=Lnode(None)
head.next=None
h1=head
while i<8:
tmp=Lnode(None)
tmp.next=None
tmp.data=i
h1.next=tmp
h1=tmp
i+=1
print("链表")
cur=head.next
while cur!=None:
print(cur.data)
cur=cur.next
print("翻转")
reverse(head)
cur=head.next
while cur!=None:
print(cur.data)
cur=cur.next