java单链表倒置

package offer;
/*
 * 反转单链表
 */
public class ReverseLinked {

    public static void main(String[] args) {

        ListNode head = new ListNode(1);
        ListNode node2 = new ListNode(2);
        ListNode node3 = new ListNode(3);
        ListNode node4 = new ListNode(4);
        ListNode node5 = new ListNode(5);
        ListNode node6 = new ListNode(6);
        ListNode node7 = new ListNode(7);
        head.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        node5.next = node6;
        node6.next = node7;

        ListNode ln = reverse(head);
        //打印反转后的单链表
        while (ln != null){
            System.out.println(ln.val);
            ln = ln.next;
        }
    }

    private static ListNode reverse(ListNode head) {
        ListNode pre = null;
        ListNode now = head;
        ListNode next = null;
        ListNode result = null;

        while (now != null) {
            next = now.next; //保存当前节点的下一个节点
            if (next == null) {
                result = now;
            }
            now.next = pre;

            pre = now;
            now = next;
        }
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/taotao12312/article/details/77853387