把鏈表相鄰元素翻轉,例如給定鏈表爲1——>2一>3一>4一>5——>6一>7,則翻轉後的鏈表變爲2一>1一>4一>3一>6一>5一>7node
經過調整結點指針域的指向來直接調換相鄰的兩個結點。若是單鏈表剛好有偶數個結點,那麼只須要將奇偶結點對調便可,若是鏈表有奇數個結點,那麼只須要將除最後一個結點外的其它結點進行奇偶對調便可。
指針
# -*-coding:utf-8-*- """ @Author : 圖南 @Software: PyCharm @Time : 2019/9/6 18:34 """ class Node: def __init__(self, data=None, next=None): self.data = data self.next = next def print_link(head): if head is None or head.next is None: return None cur = head.next while cur.next != None: print(cur.data, end=' ') cur = cur.next print(cur.data) def con_link(n): head = Node() cur = head for i in range(1, n+1): node = Node(i) cur.next = node cur = node return head def reverseNode(head): pre = head cur = pre.next while cur is not None and cur.next is not None: next = cur.next pre.next = next cur.next = next.next next.next = cur pre = cur cur = pre.next return head if __name__ == '__main__': head = con_link(6) print_link(head) head = reverseNode(head) print_link(head)