如何实现一个高效的单向链表逆序输出

你说的曾经没有我的故事 提交于 2019-11-27 16:19:25

下面是其中一种写法,也可以有不同的写法,比如递归等。供参考。

    static class Node{
        private int data;
        private Node  next;
        Node(int d){
            data = d;
            next = null;
        }

        public int getData() {
            return data;
        }

        public void setData(int data) {
            this.data = data;
        }

        public Node getNext() {
            return next;
        }

        public void setNext(Node next) {
            this.next = next;
        }
    }

    public static void reverse(Node head)
    {
        if(null == head || null == head.getNext()){
            return;
        }

        Node prev=null;
        Node pcur = head.getNext();
        Node next;

        while(pcur!=null){
            if(pcur.getNext()==null){
                pcur.setNext(prev);
                break;
            }
            next=pcur.getNext();
            pcur.setNext(prev);
            prev=pcur;
            pcur=next;
        }

        head.setNext(pcur);
        Node tmp = head.getNext();
        while(tmp!= null){
            System.out.print(tmp.getData()+" ");
            tmp=tmp.getNext();
        }
    }

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!