美文网首页
将链表相邻的两个节点反转(Java)

将链表相邻的两个节点反转(Java)

作者: Solang | 来源:发表于2019-12-25 18:41 被阅读0次

题目描述
给定一个链表,每两个相邻节点交换一次,并返回它的头部。
您不能修改列表节点中的值,只能修改节点本身。
Example:

Given 1->2->3->4, you should return the list as 2->1->4->3.
1
解决
每次将相邻节点的第二个节点的next指针指向前一个节点,然后第一个节点的指针要指向下一组已经反转的相邻节点的第一个节点,很明显可以使用递归,反转当前的一组相邻节点,先反转下一组相邻节点
代码:

 public ListNode swapPairs(ListNode head) {
        //递归出口
        if(head == null || head.next == null)
            return head;
        //每组相邻节点的第二个节点
        ListNode newNode = head.next;
        //每组相邻节点的第一个节点的next指针指向下一组已反转的第一个节点
        head.next = swapPairs(head.next.next);
        //每组相邻节点的第二个节点的next指针指向改组的第一个节点
        newNode.next = head;
        return newNode;
    }

相关文章

  • [每日一题]24.Swap Nodes in Pairs(链表)

    1.这是一个反转链表 相邻两个节点 的题目。 题目的意思就是输入一个链表,然后将链表的相邻的两个节点进行反转. 2...

  • 将链表相邻的两个节点反转(Java)

    题目描述给定一个链表,每两个相邻节点交换一次,并返回它的头部。您不能修改列表节点中的值,只能修改节点本身。Exam...

  • 关于单链表、双向列表的一些算法

    首先给出数据定义的结构 单链表 1.单链表的逆序反转 单链表相邻节点反转 A-B-C-D 输出 B-A-D-C 双...

  • Easy_ReverseNode

    反转链表: 反转单链表: 首先定义两个指针变量 pre ,cur . pre 指向前一个节点,cur 指向当前节点...

  • 剑指offer-反转链表

    输入一个链表,反转链表后,输出新链表的表头。 思路遍历链表,使用cur保存当前节点,将cur的下一个指向前一个 Java

  • 链表相关算法 - go语言实现

    链表结构 反转链表 (移除节点)删除链表中等于给定值 val 的所有节点 合并两个有序链表 链表成环检测 删除链表...

  • 剑指Offer第15题-反转链表

    题目 输入一个链表,反转链表后,输出链表的所有元素。 思路 遍历链表,将每个节点的next指向其前一个节点,头节点...

  • 实战高频leetcode题目

    1. 反转链表 : 反转链表是常见简单题目,定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点...

  • 链表

    链表基本操作 从尾到头打印链表 删除链表的节点 链表中倒数第K个节点 反转链表 合并两个有序链表 两个链表的第一个...

  • LeetCode 每日一题 [55] 反转链表

    LeetCode 反转链表 [简单] 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 来...

网友评论

      本文标题:将链表相邻的两个节点反转(Java)

      本文链接:https://www.haomeiwen.com/subject/affhoctx.html