最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java反轉(zhuǎn)鏈表測試過程介紹

 更新時間:2023年04月12日 11:26:41   作者:ziop-三月  
這篇文章主要介紹了Java反轉(zhuǎn)鏈表測試過程,學習過數(shù)據(jù)結(jié)構的小伙伴們,對鏈表想來是并不陌生。本篇文章將為大家介紹幾種在Java語言當中,實現(xiàn)鏈表反轉(zhuǎn)的幾種方法,以下是具體內(nèi)容

導讀

本文主體為單項鏈表和雙向鏈表的反轉(zhuǎn)以及簡單的測試,以便于理解鏈表相關的算法題目。

鏈表

特點

  • 便于增刪數(shù)據(jù),不便于尋址
  • 在內(nèi)存中屬于跳轉(zhuǎn)結(jié)構

單鏈表和雙鏈表的定義

單鏈表: 值,一條next指針

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

單向鏈表

Node結(jié)點

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();
    }
}

反轉(zhuǎn)單向鏈表

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;
}

測試函數(shù)

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);
}

輸出結(jié)果如下:

[3, 2, 1]

雙向鏈表

Node結(jié)點

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();
    }
}

反轉(zhuǎn)雙向鏈表

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));
}

輸出結(jié)果如下:

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

到此這篇關于Java反轉(zhuǎn)鏈表測試過程介紹的文章就介紹到這了,更多相關Java反轉(zhuǎn)鏈表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    這篇文章主要介紹了如何利用Java語言實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址,文中的示例代碼講解詳細,對我們學習有一定的參考價值,快跟隨小編一起學習一下吧
    2022-06-06
  • springboot集成測試容器重啟問題的處理

    springboot集成測試容器重啟問題的處理

    這篇文章主要介紹了springboot集成測試容器重啟問題的處理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 基于Java驗證jwt token代碼實例

    基于Java驗證jwt token代碼實例

    這篇文章主要介紹了基于Java驗證jwt token代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Mybatis中強大的resultMap功能介紹

    Mybatis中強大的resultMap功能介紹

    這篇文章主要給大家介紹了關于Mybatis中強大的resultMap功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Mybatis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • SpringBoot啟動后啟動內(nèi)嵌瀏覽器的方法

    SpringBoot啟動后啟動內(nèi)嵌瀏覽器的方法

    這篇文章主要介紹了SpringBoot啟動后啟動內(nèi)嵌瀏覽器的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 在springboot中對kafka進行讀寫的示例代碼

    在springboot中對kafka進行讀寫的示例代碼

    本篇文章主要介紹了在springboot中對kafka進行讀寫的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java二維數(shù)組與稀疏數(shù)組相互轉(zhuǎn)換實現(xiàn)詳解

    Java二維數(shù)組與稀疏數(shù)組相互轉(zhuǎn)換實現(xiàn)詳解

    在某些應用場景中需要大量的二維數(shù)組來進行數(shù)據(jù)存儲,但是二維數(shù)組中卻有著大量的無用的位置占據(jù)著內(nèi)存空間,稀疏數(shù)組就是為了優(yōu)化二維數(shù)組,節(jié)省內(nèi)存空間
    2022-09-09
  • Spring示例講解條件注入方法

    Spring示例講解條件注入方法

    Spring支持按照條件來注入某些特定的bean,這也是Spring Boot實現(xiàn)自動化配置的底層方法,文中的示例代碼講解詳細,需要的可以參考一下
    2022-06-06
  • java實現(xiàn)cassandra高級操作之分頁實例(有項目具體需求)

    java實現(xiàn)cassandra高級操作之分頁實例(有項目具體需求)

    這篇文章主要介紹了java實現(xiàn)cassandra高級操作之分頁實例(有項目具體需求),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式

    Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式

    最近在實戰(zhàn)springboot遇到了一些坑,記錄一下,下面這篇文章主要給大家介紹了關于Mybatisplus創(chuàng)建Spring?Boot工程打包錯誤的解決方式,文中通過圖文介紹的介紹的非常詳細,需要的朋友可以參考下
    2023-03-03

最新評論

中阳县| 鸡东县| 赤水市| 石台县| 乌拉特后旗| 密云县| 翼城县| 长宁县| 博白县| 普洱| 中宁县| 东乌| 增城市| 临湘市| 麦盖提县| 莱阳市| 和林格尔县| 河源市| 泗阳县| 井研县| 双流县| 同江市| 察雅县| 陵川县| 吉首市| 长沙县| 武陟县| 西峡县| 东宁县| 平度市| 恩平市| 沾化县| 彭阳县| 特克斯县| 乌鲁木齐市| 青岛市| 锡林浩特市| 邵阳县| 文昌市| 福海县| 永靖县|