Java教程

单链表反转

本文主要是介绍单链表反转,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第一步写reversetList方法来实现

//将单链表反转
    public static void reversetList(Node head){
        //如果当前链表为空,或者只有一个节点,无需反转,直接返回
        if (head.next == null || head.next.next == null){
            return;
        }
        //定义一个辅助的指针(变量),帮助我们遍历原来的链表
        Node cur = head.next;
        Node next = null;//指向当前节点[cur]的下一个节点
        Node reverseHead = new Node(0,"","");
        //遍历原来的链表,每遍历一个节点,就将其取出,并放在新的链表reverseHead的最前端
        while (cur != null){
            next = cur.next;//先暂时保存当前节点的下一个节点,因为后面需要使用
            cur.next = reverseHead.next;//将cur的下一个节点指向新的链表最前端
            reverseHead.next = cur;//将cur 连接到新的链表上
            cur = next ;//让cur后移
        }
        //将head.next 指向 reverseHead.next ,实现单链表的反转
        head.next = reverseHead.next;
    }

第二步测试测试

//单链表反转
       System.out.println("反转单链表");
       reversetList(singleLinkedList.getHead());
       singleLinkedList.list();
这篇关于单链表反转的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!