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;
    }
}
目录
相关文章
|
17天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
4天前
[leetcode] 670. 最大交换 M
[leetcode] 670. 最大交换 M
|
13天前
【力扣】21. 合并两个有序链表
【力扣】21. 合并两个有序链表
|
1月前
|
存储 Java
Java链表
Java链表
11 0
|
1月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
1月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
1月前
|
机器学习/深度学习 算法
力扣刷题日常(一)
力扣刷题日常(一)
20 2
|
1月前
|
存储 索引
《LeetCode》—— LeetCode刷题日记
《LeetCode》—— LeetCode刷题日记
|
1月前
|
搜索推荐
《LeetCode》——LeetCode刷题日记3
《LeetCode》——LeetCode刷题日记3