链表--单链表反转

反转一个单链表

输入: 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;
        }
    }

你可能感兴趣的:(链表--单链表反转)