链表--单链表反转

反转一个单链表

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

    public static void main(String[] args) {

        LinkedNode linkedNode5 = new LinkedNode(1);

        LinkedNode linkedNode4 = new LinkedNode(2,linkedNode5);

        LinkedNode linkedNode3 = new LinkedNode(3,linkedNode4);


        LinkedNode linkedNode =listReserve(linkedNode3);

        while (linkedNode !=null){
            System.out.println(linkedNode.val);
            linkedNode = linkedNode.next;
        }

    }




    public static LinkedNode listReserve(LinkedNode linkedNode){
        if(linkedNode == null){
            return null;
        }

        LinkedNode reserveNode = null;
        while (linkedNode !=null){
            //逆序:新结点的下一结点指向reserveNode,再将新结点赋值给reserveNode
            LinkedNode node = new LinkedNode(linkedNode.val);
            node.next = reserveNode;
            reserveNode = node;


            linkedNode = linkedNode.next;
        }
        return reserveNode;
    }



    private static class LinkedNode {

        private int val;

        private LinkedNode next;

        public LinkedNode(int val) {
            this.val = val;
        }

        public LinkedNode(int val, LinkedNode next) {
            this.val = val;
            this.next = next;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。