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;
    }
}
目录
相关文章
|
2月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
52 1
|
3月前
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
34 0
LeetCode第二十四题(两两交换链表中的节点)
|
3月前
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
50 0
Leetcode第十九题(删除链表的倒数第N个节点)
|
3月前
【LeetCode 46】450.删除二叉搜索树的节点
【LeetCode 46】450.删除二叉搜索树的节点
27 0
|
3月前
|
算法 Java
LeetCode(一)Java
LeetCode(一)Java
|
5月前
|
算法
LeetCode第24题两两交换链表中的节点
这篇文章介绍了LeetCode第24题"两两交换链表中的节点"的解题方法,通过使用虚拟节点和前驱节点技巧,实现了链表中相邻节点的交换。
LeetCode第24题两两交换链表中的节点
04_两两交换链表中的节点
04_两两交换链表中的节点
|
5月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
87 2
|
5月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
59 1
|
7月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表