题目
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
解题思路
- 排除无法交换的情况,即:当前节点为空或当前节点无下一个节点;
- 获取当前节点的下一个节点,让当前节点的下一个节点指向下下个节点;
- 下一个节点指向当前节点;
代码展示
class Solution { public ListNode swapPairs(ListNode head) { if(head == null || head.next == null){ return head; } ListNode res = head.next; head.next = swapPairs(res.next); res.next = head; return res; } }