给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例 2:
输入:head = [] 输出:[]
示例 3:
输入:head = [1] 输出:[1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
//思路:
//假设有两个指针,front rear front指向一组之中的第一个节点 rear指向一组之中的第二个节点
//front->next = rear->next;
//rear->next = front;
//front=front->next;
//rear = front->next;
struct ListNode* swapPairs(struct ListNode* head) {
if (head == NULL || head->next == NULL) {
return head;
}
struct ListNode* newHead = head->next;
head->next = swapPairs(newHead->next);
newHead->next = head;
return newHead;
}
我一开始的思路是:
//假设有两个指针,front rear front指向一组之中的第一个节点 rear指向一组之中的第二个节点
//front->next = rear->next;
//rear->next = front;
//front=front->next;
//rear = front->next;
但是,当我开始这样写的时候,我发现根本不对,所以我就看了看解析。是的,中等难度的题目我必须看解析。。
但是我没有看懂。
今天我没有心思把它搞得清清楚楚了,为什么呢?因为我拿到了一个薪资很可观的offer!耶!激动的心情溢于言表啊!让我放松一下下吧!!嘻嘻嘻~~~