赞
踩
24.两两交换链表中的节点的链接如下表所示,若无法直接点击下面的链接进入力扣做题的话,您也可直接复制下面的网址,然后进入力扣学习该题。在观看下面的内容之前您一定要先做一遍哦,这样才可以使你印象深刻!!!
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例 1:
输入:head = [1,2,3,4] 输出:[2,1,4,3]
示例 2:
输入:head = [] 输出:[]
示例 3:
输入:head = [1] 输出:[1]
提示:
[0, 100]
内0 <= Node.val <= 100
两两交换链表中的节点可以用单链表的思想去做,示例代码如下代码块所示:
- class Solution {
- public ListNode swapPairs(ListNode head) {
- ListNode dummyhead=new ListNode(-1); //设置一个虚拟头节点
- dummyhead.next=head;
- ListNode curr=dummyhead;
- ListNode temp;
- ListNode firstnode;
- ListNode secondnode;
- while(curr.next!=null&&curr.next.next!=null){
- temp=curr.next.next.next; //存着第三个节点
- firstnode=curr.next;
- secondnode=curr.next.next;
- curr.next=secondnode; //步骤一
- secondnode.next=firstnode; //步骤二
- firstnode.next=temp; //步骤三
- curr=firstnode;
- }
- return dummyhead.next;
- }
- }

该题主要采用单链表的思想去做,具体思路如下所示:
最后,感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您有用的算法知识和启发。希望本题对大家有帮助,谢谢各位读者的支持!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。