手撕代码之反转单链表

Posted xiaonantianmen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手撕代码之反转单链表相关的知识,希望对你有一定的参考价值。

今天去际链面试,结果在coding这一关又折了。

那就总结一下吧,就当再手撕一下代码

首先定义一个listNode:

public class listNode {
    int data;
    listNode next;
    public listNode(int data, listNode next) {
        this.data = data;
        this.next = next;
    }
}

定义方法:

public class listNodeReverse {
    public static void main(String[] args) {
        listNode D = new listNode(4, null);
        listNode C = new listNode(3, D);
        listNode B = new listNode(2, C);
        listNode A = new listNode(1, B);
        listNode  node= reverse(A);
        System.out.println("null");
    }
    public static listNode reverse(listNode listnode) {
        //迭代的思想
        listNode pre = null;
        listNode now = listnode;
        while (now != null) {
            listNode next =now.next;
            now.next=pre;
            pre = now;
            now=next;
        }
        return pre;
    }

}

执行结果:

技术分享图片

单向链表的反转还有其他高效的方法,欢迎交流学习!!!!!

 

以上是关于手撕代码之反转单链表的主要内容,如果未能解决你的问题,请参考以下文章

小代码 单链表之反转 然后交错重连+稀疏矩阵

LeetCode每日一刷 --- 手撕单链表习题

单链表反转java代码

剑指offer demo之单链表反转

剑指offer demo之单链表反转

java数据结构与算法之反转单链表