283096ce7c42c0bf64837436f7b6f4ff
(难度Medium)Problem 24. Swap Nodes in Pairs(交互链表相邻元素)

链接

https://leetcode.com/problems/swap-nodes-in-pairs/

难度等级

Medium

题干

Given a linked list, swap every two adjacent nodes and return its head.

You may not modify the values in the list's nodes, only nodes itself may be changed.

题意

给定一个链表,要求把两两相邻的元素调换顺序。

样例

Given 1->2->3->4, you should return the list as 2->1->4->3.

题解

这道题官方给的难度是Medium,我觉得只有Easy。

很多涉及链表的题难度都有点虚高,这道题也不例外,难度有点虚高,本质上就是一个链表的操作。所谓的难度,基本上也都在链表的操作当中,谈不上什么算法。

解法也不难想到,既然我们的目的是把所有相邻的元素全部反转位置。那么我们只需要每次遍历两个元素,然后倒过来加入链表,最后返回即可。本质上这是一个链表的遍历问题。

唯一需要注意的地方就是我们每次读取两个元素肯定会存在落单的问题,如果落单了,那么这个元素不要丢掉,也要加入链表当中。

代码

```
/**

  • Definition for singly-linked list.
top Created with Sketch.