美文网首页
2019/10/27 链表反转 (递归)

2019/10/27 链表反转 (递归)

作者: 寒叶xly | 来源:发表于2019-10-27 10:49 被阅读0次

反转链表

反转链表为 leetcode 206题:

反转一个单链表。
示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

思路:当最后一个节点或者最后一个节点的next节点为空时,开始反转,即让最后一个不为空的节点指向倒数第二个不为空的节点,并且把倒数第二个节点指向NULL,以此类推,直到第二个节点指向第一个节点,再把第一个节点指向NULL,即完成反转链表。

反转流程如下:


初始化链表.jpg
第一次反转.jpg
第二次反转.jpg
第三次反转.jpg
第四次反转.jpg

递归反转链表JAVA代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        
        if (head == null || head.next == null) return head;

        ListNode newHead = reverseList(head.next);

        head.next.next = head;

        head.next = null;

        return newHead;

    }
}

相关文章

  • 2019/10/27 链表反转 (递归)

    反转链表 反转链表为 leetcode 206题: 反转一个单链表。示例: 输入: 1->2->3->4->5->...

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 链表反转

    循环反转链表 递归反转链表

  • 单链表反转

    单链表 单链表反转 递归方法

  • 反转链表(java实现)

    链表反转 节点数据结构如下: 链表反转的两种方式:递归和非递归 递归方式如下: 非递归方式如下:

  • leecode刷题(22)-- 反转链表

    leecode刷题(22)-- 反转链表 反转数组 反转一个单链表。 示例: 进阶:你可以迭代或递归地反转链表。你...

  • 数据结构专题:1.单向链表反转与排序

    有如下单向链表 1.单向链表反转,递归 递归的方式其实是从尾节点开始进行指针反转,最终递归反转到头节点 2.单向链...

  • 初级算法-链表-反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 进阶:链表可以选用迭代或递归方式完成反转。你能...

  • 链表相关的题

    单向链表反转 如1->2->3->4,反转成4->3->2->1反转链表有2种做法,递归和循环。递归写法: 循环写...

  • 链表反转

    反转类型问题是面试中的常见问题。如反转字符串,反转链表等,今天给出利用递归和非递归方法解决反转链表问题的两个解决思...

网友评论

      本文标题:2019/10/27 链表反转 (递归)

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