题目描述:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
思路:
-
方法一:
迭代方法:基础的三指针法,分别指向需要交换的两个节点和它们的前一个节点,注意节点交换时各个链的连接顺序。因为头结点会与下一个节点交换位置,为了方便返回正确的节点,在整个链表头部增加额外的头结点,下图分别是当链表中节点是偶数和奇数时指针的移动。
- 当链表节点数是奇数
- 当链表节点数是偶数
# Definition for singly-linked list.
# class ListNode: