美文网首页
链表逆序的两种方法(java)

链表逆序的两种方法(java)

作者: 站在埃菲尔铁塔上看风景 | 来源:发表于2017-09-22 15:28 被阅读0次

public class ListNode {

int val;

ListNode next;

public ListNode(int val) {

this.val = val;

}

}

1.用迭代的方法反转链表(iteratively)

class Solution {

public ListNode reverseList(ListNode head) {

if (head == null) {

return null;

}

ListNode dummy = new ListNode(0);

dummy.next = head;

ListNode pre = dummy.next;

ListNode start = pre.next;

ListNode then = start.next;

while (then != null) {

start.next = then.next;

then.next = pre.next;

pre.next = then;

then = start.next;

}

return dummy.next;

}

}

2.用递归的方法反转链表(recursively)

class Solution {

public ListNode reverseList(ListNode head){

if (head.next == null || head == null) {

return head;

}

ListNode nextNode = head.next;

ListNode last = reverseList(nextNode);

nextNode.next = head;

head.next = null;

return last;

}

}

相关文章

  • 链表逆序的两种方法(java)

    public class ListNode { int val; ListNode next; public Li...

  • 数据结构--关于链表的一些算法问题

    单向链表逆序问题 注意这里是单向链表,所以只能从头向尾遍历。 单向链表的逆序主要有以下两种方式。 使用栈的先进后出...

  • 单链表逆序操作学习

    前言 将单链表逆序,方法有三种: 遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组,并重新构造一个链表 ...

  • 单链表的逆转

    方法一 将原先的链表节点摘取下来,使用头结点插入的方法再插入,最后实现单链表的逆序 方法二

  • 4. 链表

    链表题目是有套路的,如下4个方法: 链表逆序 (n个节点进行逆序,实际上循环进行n-1次)2个指针 (拆分、拼接、...

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

  • 单链表 常用操作(golang)

    (单链表备忘记录)知识点: 单链表结构 创建链表方法头插法创建尾插法创建 遍历链表 逆序反转链表迭代递归头插法就地...

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • LeetCode 2. Add Two Numbers

    单链表逆序相加

  • 面试:用 Java 逆序打印链表

    面试:用 Java 逆序打印链表 昨天的 Java 实现单例模式 中,我们的双重检验锁机制因为指令重排序问题而引入...

网友评论

      本文标题:链表逆序的两种方法(java)

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