LeetCode第24题:两两交换链表中的节点
- 题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
- 解法一:呃。。。。我希望可以像交换数字一样,引入一个变量,返回原来的链表。就一小点点代码,就是超出各种限制。。。最终弄明白了原理才改对,希望学链表的时候好好学学吧!
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode pre = new ListNode(0);
pre.next = head;
ListNode frist=pre;
while(frist.next != null && frist.next.next!= null){
ListNode ans=frist.next;
ListNode rig=frist.next.next;
frist.next=rig;
ans.next=rig.next;
rig.next=ans;
frist=ans;
}
return pre.next;
}
}
class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null || head.next == null){
return head;
}
ListNode next = head.next;
head.next = swapPairs(next.next);
next.next = head;
return next;
}
}
作者:guanpengchn
链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/hua-jie-suan-fa-24-liang-liang-jiao-huan-lian-biao/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。