给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例
给定 1->2->3->4, 你应该返回 2->1->4->3. |
解法
非递归
- 设立新的头结点H的好处是:使得交换前两个结点时的操作和后面的完全一致,不用分开处理。
- 指针pre和p:分别指向要交换的两个结点,每次向后移动两个结点
- 指针rear:指向已经排好顺序的部分的尾端,初始指向头结点
- 结束条件:p指向位置为空
# 非递归解法 |
递归法
# 递归解法 |
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
给定 1->2->3->4, 你应该返回 2->1->4->3. |
# 非递归解法 |
# 递归解法 |
微信支付
支付宝