LeetCode题解- 两两交换链表中的节点-Java

简介: 两两交换链表中的节点-Java

这是一道链表题。做链表的题,可以增加对指针,或者说引用的概念的理解。所以这也是一个有意思的题。
下面是题解,没有思路的话可以参考看看:

class Solution {
   
    public static ListNode swapPairs(ListNode head) {
   
        if(head==null||head.next==null)return head;
        ListNode l = head;
        ListNode r = head.next;
        //第一次交换
        ListNode ll = l;
        l.next = r.next;
        r.next = l ;
        ListNode result = r;
        l = l.next ;
        if(l!=null)
        r = l.next;        
        //第2。。。N次交换
        while(l!=null&&l.next!=null) {
   
            l.next = r.next;
            r.next = l ;
            ll.next = r;
            ll = l;
            l = l.next ;
            if(l!=null)
            r = l.next;
        }
        return result;
    }
}
目录
相关文章
|
30天前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
30天前
|
存储
LeetCode刷题---817. 链表组件(哈希表)
LeetCode刷题---817. 链表组件(哈希表)
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
30天前
|
算法 安全 数据处理
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)
|
1月前
|
算法 Java
[Java·算法·中等] LeetCode15. 三数之和
[Java·算法·中等] LeetCode15. 三数之和
29 0
|
2天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
29天前
|
存储 Java
Java链表
Java链表
10 0
|
30天前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
|
30天前
|
算法 索引
LeetCode刷题--- 138. 复制带随机指针的链表(哈希表+迭代)
LeetCode刷题--- 138. 复制带随机指针的链表(哈希表+迭代)
|
30天前
|
存储 算法 索引
LeetCode刷题---链表经典问题(双指针)
LeetCode刷题---链表经典问题(双指针)