线性数据结构案例2 —— 单链表反转

一、介绍

 我们首先创建一个新的头节点交reverseHead,遍历我们原来的链表,每遍历一个就放在新链表的最前端,最后将原来链表的头节点的后续节点指向新链表头节点的后续节点。

二、代码

public void reverseSingleLinkedList(Node head) {
        // 如果链表为空 或者只有一个元素就没必要反转了
        if (head.next == null || head.next.next == null) {
            return;
        }
        Node reverseHead = new Node(0, "");
        Node temp = head.next;
        Node tempNext = null;
        while (temp != null) {
            tempNext = temp.next;
            temp.next = reverseHead.next;
            reverseHead.next = temp;
            temp = tempNext;
        }
        head.next = reverseHead.next;
    }
posted @ 2020-02-09 21:52  荏苒白驹  阅读(135)  评论(0)    收藏  举报
levels of contents