溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java反轉鏈表怎么測試

發布時間:2023-04-18 17:47:05 來源:億速云 閱讀:117 作者:iii 欄目:開發技術

本篇內容主要講解“Java反轉鏈表怎么測試”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java反轉鏈表怎么測試”吧!

鏈表

特點

  • 便于增刪數據,不便于尋址

  • 在內存中屬于跳轉結構

單鏈表和雙鏈表的定義

單鏈表: 值,一條next指針

雙鏈表:值,一條last指針,一條next指針

單向鏈表

Node結點

public static class Node {
    public int value;
    public Node next;
    public Node(int value) {
        this.value = value;
    }
    @Override
    public String toString() {
        ArrayList<Integer> nums = new ArrayList<>();
        Node node = this;
        while (node != null) {
            nums.add(node.value);
            node = node.next;
        }
        return nums.toString();
    }
}

反轉單向鏈表

public static Node reverseLinkedList(Node head) {
    Node next = null;
    Node pre = null;
    while (head != null) {
        next = head.next;
        head.next = pre;
        pre = head;
        head = next;
    }
    return pre;
}

測試函數

public static void main(String[] args) {
    Node node = new Node(1);
    node.next = new Node(2);
    node.next.next = new Node(3);
    node = reverseLinkedList(node);
    System.out.println(node);
}

輸出結果如下:

[3, 2, 1]

雙向鏈表

Node結點

public static class DoubleList {
    public int value;
    public DoubleList next;
    public DoubleList last;
    public DoubleList(int value) {
        this.value = value;
    }
    @Override
    public String toString() {
        ArrayList<Integer> nums = new ArrayList<>();
        DoubleList node = this;
        while (node != null) {
            nums.add(node.value);
            node = node.next;
        }
        return nums.toString();
    }
}

反轉雙向鏈表

public static DoubleList reverseDoubleList(DoubleList head) {
    DoubleList next;
    DoubleList pre = null;
    while (head != null) {
        next = head.next;
        head.next = pre;
        // 注意和單項鏈表不一樣的地方只有這一行,其他都基本一樣
        head.last = next;
        pre = head;
        head = next;
    }
    return pre;
}

測試代碼

public static void main(String[] args) {
    DoubleList node1 = new DoubleList(1);
    node1.next = new DoubleList(2);
    node1.next.last = node1;
    node1.next.next = new DoubleList(3);
    node1.next.next.last = node1.next;
    System.out.println("reverseDoubleList(node1) = " + reverseDoubleList(node1));
}

輸出結果如下:

reverseDoubleList(node1) = [3, 2, 1]

到此,相信大家對“Java反轉鏈表怎么測試”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女