LC24. 两两交换链表中的节点

代码随想录

java 复制代码
class Solution {
    // 举例子:假设两个节点 1 -> 2
    // 那么 head = 1; next = 2; next.next = null
    // 那么swapPairs(next.next),传入的是null,再下一次递归中直接返回null
    // 因此 newNode = null
    // 所以 next.next = head; => 2.next = 1; 2 -> 1
    //      head.next=  newNode; => 1.next = null; 1->null
    // 所以 2->1->null
    // 最终返回 next,即返回 2
    public ListNode swapPairs(ListNode head) {
        
        if(head == null || head.next == null)
            return head;

        ListNode next = head.next;

        ListNode newNode = swapPairs(next.next);


        next.next = head;

        head.next = newNode;

        return next;
    }
    
}
相关推荐
侧耳倾听11114 分钟前
单元测试之mockito
java·单元测试
苹果酱056717 分钟前
SpringCloud第二篇:注册中心Eureka
java·vue.js·spring boot·mysql·课程设计
圈圈编码18 分钟前
WebSocket
java·网络·spring boot·websocket·网络协议·spring
szuaudi21 分钟前
SpringMVC实现text/event-stream(SSE)
java·spring
Hamm26 分钟前
用一种全新的方式来实现i18n,和魔法字符串彻底说拜拜
前端·vue.js·typescript
nlog3n42 分钟前
Java 桥接模式 详解
java·开发语言·桥接模式
摸鱼仙人~42 分钟前
React: hook相当于函数吗?
前端·javascript·react.js
百锦再43 分钟前
React编程高级主题:错误处理(Error Handling)
前端·javascript·react.js·前端框架·vue·web·angular
阿里巴巴首席技术官44 分钟前
CSS 高级用法
前端·css
理想奋斗中1 小时前
【并发编程 | 第五篇】探索ThreadLocal的原理
java·多线程·threadlocal·threadlocalmap