美文网首页
【算法】链表翻转的两种写法

【算法】链表翻转的两种写法

作者: 王月亮17 | 来源:发表于2024-04-01 19:38 被阅读0次

初始化

ListNode listNode5 = new ListNode(5, null);
ListNode listNode4 = new ListNode(4, listNode5);
ListNode listNode3 = new ListNode(3, listNode4);
ListNode listNode2 = new ListNode(2, listNode3);
ListNode listNode1 = new ListNode(1, listNode2);
doReverse(listNode1);

遍历

private static ListNode doReverse(ListNode head) {
    ListNode prev = null, next;
    while (head != null) {
        next = head.next;
        head.next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

递归

private static ListNode doReverse(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }
    ListNode newHead = doReverse(head.next);
    head.next.next = head;
    head.next = null;
    return newHead;
}

相关文章

  • 翻转链表算法

    翻转链表的方法有很多,如果是逆序输出链表,并且链表不是特别长的情况可以考虑直接用递归,以压栈的形式输出,然而,很多...

  • 【算法】翻转链表

    假设链表为 1→2→3→∅,我们想要把它改成∅←1←2←3。 在遍历链表时,将当前节点的指针改为指向前一个节点。由...

  • 链表反转

    参考文献链表翻转的图文讲解(递归与迭代两种实现)

  • ARTS 20201208-1215

    Algorithm: 每周至少做一个 LeetCode 的算法题算法题:1 剑指 offer 24: 翻转链表递归...

  • 算法(15)翻转链表

    题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路:就是把原节点的next节点当做头结点,然后将头结点的...

  • 算法题面试复习

    算法模块 1. 链表 1. 链表翻转 2. 单链表判断是不是环+求环位置+求环长度 以图片为例,假设环入口距离链表...

  • 链表翻转的图文讲解(递归与迭代两种实现)

    转载 链表翻转的图文讲解(递归与迭代两种实现) 链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为...

  • 算法(5)- 链表一【翻转链表】

    说在前面: 1、链表不支持随机的访问元素,需从头一次遍历到要访问的节点。2、思路(1)设立头结点。(2)借助辅助指...

  • 牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转

    牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转 题目描述 将给出的链表中的节点每 k 个一组翻转,返回翻...

  • 54.算法->k个一组翻转链表

    day6:算法-> 25. K 个一组翻转链表[https://leetcode-cn.com/problems/...

网友评论

      本文标题:【算法】链表翻转的两种写法

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