美文网首页
反转链表理解(java)

反转链表理解(java)

作者: 岸上生活 | 来源:发表于2019-03-22 16:22 被阅读0次

1、定义链表节点对象

public class ListNode {

        int val;//定义值

        ListNode  next=null;//定义下一引用节点

        ListNode(int val){

              this.val=val;

         }

}


2、反转方法及测试

public class ListNodeDone {

    public ListNode reverse(ListNode node){

        ListNode next=null;//临时变量 用于下次循环

        ListNode tail=null;//链表尾巴

        while(null!=node){

            next=node.next; // 1定义临时变量  为什么不在最后一步 直接 node =node.next  此时 node.next 在步骤2 已经变化

            node.next=tail;//2将当前节点 指向尾巴对象  倒序嘛  这一步 是每次循环连接节点的操作

            tail=node;// 3然后尾巴 重新赋值  取当前节点 作为新的尾巴

            node=next;//4

            /*1 和 4  用于保证while循环 一直 往下一个节点循环*/

            /*2 和3

            *

            * 1.next->null 此时  尾巴为空  1指向null后  1 作为新的尾巴  节点1

            *

            * 2.next->1  此时  尾巴为1  2指向1后  2 作为新的尾巴    节点2 ->节点1

            *

            *

            *  类推  节点5->4>3>2>1

            * */

        }

        return tail;

    }

    public static void main(String[] args) {

        //新建节点

        ListNode a=new ListNode(1);

        ListNode b=new ListNode(2);

        ListNode c=new ListNode(3);

        ListNode d=new ListNode(4);

        ListNode e=new ListNode(5);

        ListNode f=new ListNode(6);

        //连接节点

        a.next=b;

        b.next=c;

        c.next=d;

        d.next=e;

        e.next=f;

        System.out.println("*************************************************");

        new ListNodeDone().reverse(a);

        while(f!=null){

            System.out.print(f.val+"->");

            f=  f.next;

        }

    }

}

相关文章

  • 反转链表理解(java)

    1、定义链表节点对象 public class ListNode { int val;//定义值 ...

  • 15反转链表

    题目描述 输入一个链表,反转链表后,输出新链表的表头。 Java实现

  • 2022-03-26 链表反转回文

    反转链表:java版本: 剑指 Offer II 027. 回文链表[https://leetcode.cn/pr...

  • 反转链表-Java

  • java反转链表

    public class JavaTest1 { public static void main(String[]...

  • Algorithm小白入门 -- 单链表

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

  • 链表反转

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

  • 理解单链表的反转(java实现)

    要求很简单,输入一个链表,反转链表后,输出新链表的表头。  反转链表是有2种方法(递归法,遍历法)实现的,面试官最...

  • 5个链表的常见操作

    链表 链表反转 LeetCode206:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 环路检...

  • JZ-015-反转链表

    反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。题目链接: 反转链表[https://www.no...

网友评论

      本文标题:反转链表理解(java)

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