把链表相邻元素翻转,例如给定链表为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)