"""
把链表相邻元素翻转,例如给定链表1->2->3->4->5->6->7, 则翻转后的链表变为2->1->4->3->6->5->7
"""
class LNode:
def __init__(self):
self.data = None
self.next = None
def reverse(head):
"""
方法功能:把链表相邻元素翻转
:param head:
:return:
"""
if head is None or head.next is None:
return
cur = head.next
pre = head
next = None
while cur is not None and cur.next is not None:
next = cur.next.next
pre.next = cur.next
cur.next.next = cur
cur.next = next
pre = cur
cur = next
if __name__ == '__main__':
i = 1
head = LNode()
tmp = None
cur = head
while i < 8:
tmp = LNode()
tmp.data = i
cur.next = tmp
cur = tmp
i += 1
print('顺序输出:')
cur = head.next
while cur is not None:
print(cur.data, end=' ')
cur = cur.next
reverse(head)
print('\n逆序输出:')
cur = head.next
while cur is not None:
print(cur.data, end=' ')
cur = cur.next
运行结果如下:
顺序输出:
1 2 3 4 5 6 7
逆序输出:
2 1 4 3 6 5 7