91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么實現單向鏈表反轉

小億
81
2023-12-11 14:03:41
欄目: 編程語言

要實現單向鏈表的反轉,可以采用迭代或遞歸的方式來實現。以下是使用迭代的方式實現單向鏈表的反轉的Java代碼:

public class LinkedList {
    private Node head;

    public void reverse() {
        Node prev = null;
        Node current = head;
        Node next = null;

        while (current != null) {
            next = current.next;
            current.next = prev;
            prev = current;
            current = next;
        }
        head = prev;
    }

    // Node class
    private static class Node {
        private int data;
        private Node next;

        public Node(int data) {
            this.data = data;
        }
    }
}

使用上述代碼,可以通過調用reverse方法來實現單向鏈表的反轉。

另外,以下是使用遞歸的方式實現單向鏈表的反轉的Java代碼:

public class LinkedList {
    private Node head;

    public void reverse() {
        head = reverse(head, null);
    }

    private Node reverse(Node current, Node prev) {
        if (current == null) {
            return prev;
        }
        Node next = current.next;
        current.next = prev;
        return reverse(next, current);
    }

    // Node class
    private static class Node {
        private int data;
        private Node next;

        public Node(int data) {
            this.data = data;
        }
    }
}

使用上述代碼,同樣可以通過調用reverse方法來實現單向鏈表的反轉。

無論是迭代還是遞歸的方式,都需要定義一個Node類來表示鏈表的節點,其中包含一個數據域和一個指向下一個節點的指針。在反轉時,需要使用三個指針來記錄當前節點、前一個節點和下一個節點,通過修改節點之間的指針來實現反轉操作。

0
营山县| 乌拉特中旗| 灌阳县| 台东市| 临夏县| 兴国县| 绥滨县| 长宁县| 启东市| 布尔津县| 眉山市| 青浦区| 扎囊县| 宁国市| 新邵县| 伊宁市| 吴江市| 齐河县| 巴东县| 筠连县| 噶尔县| 金阳县| 新丰县| 大竹县| 长乐市| 克什克腾旗| 尚志市| 邢台县| 昭苏县| 广宁县| 逊克县| 温宿县| 营山县| 连州市| 临安市| 河南省| 武强县| 丹寨县| 奉化市| 乌拉特前旗| 临泉县|