交换相邻节点
难度:中等 思路:递归
一、题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
1 | 给定 1->2->3->4, 你应该返回 2->1->4->3. |
二、问题分析
链表中节点的交换是传统问题,两个指针解决问题,唯一要注意的是不能在交换过程中把链表给断开了,否则岂不是得不偿失?暴力法本可以解决一切,但是优雅的方法是递归,把相邻节点的交换搞定,然后递归把所有的节点串起来,简直是美滋滋啊。
三、代码分析
1 | class Solution: |
复杂度分析
O(N)