题目内容
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例
示例 1:
输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]
提示
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100
题解
本题是一道链表题,通过画图实现两个节点的交换过程,然后通过代码实现即可。这里注意如果链表结点数为偶数,则两两交换即可,如果链表结点数为奇数,则最后一个落单元素不用管。
大致过程如下:
由于本题是单链表,因此在实现的过程中,除了指向两个要交换的结点的指针外,还需要一个额外指针指向一对结点的前一个指针,保证交换后链表结构完整。
代码
/** |