亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

導讀

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

鏈表

特點

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

單鏈表和雙鏈表的定義

單鏈表: 值,一條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();
    }
}

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

輸出結果如下:

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

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

輸出結果如下:

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

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

相關文章

  • 簡要分析Java多進程編程的并發(fā)控制

    簡要分析Java多進程編程的并發(fā)控制

    這篇文章介紹了簡要分析Java多進程編程的并發(fā)控制,主要針對內(nèi)存獲取方面,需要的朋友可以參考下
    2015-11-11
  • drools的簡單入門案例場景分析

    drools的簡單入門案例場景分析

    drools是一款由JBoss組織提供的基于Java語言開發(fā)的開源規(guī)則引擎,可以將復雜且多變的業(yè)務規(guī)則從硬編碼中解放出來,這篇文章主要介紹了drools的簡單入門案例,需要的朋友可以參考下
    2022-05-05
  • Spring如何集成ibatis項目并實現(xiàn)dao層基類封裝

    Spring如何集成ibatis項目并實現(xiàn)dao層基類封裝

    這篇文章主要介紹了Spring如何集成ibatis項目并實現(xiàn)dao層基類封裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 詳解@Autowired(required=false)注入注意的問題

    詳解@Autowired(required=false)注入注意的問題

    這篇文章主要介紹了@Autowired(required=false)注入注意的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 使用SpringBoot和JPA實現(xiàn)批量處理新增、修改

    使用SpringBoot和JPA實現(xiàn)批量處理新增、修改

    最近項目需要在JPA中使用ID進行批量更新,所以下面這篇文章主要給大家介紹了關于使用SpringBoot和JPA實現(xiàn)批量處理新增、修改的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Spring Boot使用模板freemarker的示例代碼

    Spring Boot使用模板freemarker的示例代碼

    本篇文章主要介紹了Spring Boot使用模板freemarker的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java中的LinkedHashMap源碼分析

    Java中的LinkedHashMap源碼分析

    這篇文章主要介紹了Java中的LinkedHashMap源碼分析,LinkedHashMap是HashMap的子類,所以基本的操作與hashmap類似,不過呢,在插入、刪除、替換key-value對的時候,需要的朋友可以參考下
    2023-12-12
  • java中BigDecimal的使用踩坑記錄

    java中BigDecimal的使用踩坑記錄

    這篇文章主要為大家詳細介紹了java中使用BigDecimal會踩坑的地方以及相關的解決方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • Spring Boot+Shiro實現(xiàn)一個Http請求的Basic認證

    Spring Boot+Shiro實現(xiàn)一個Http請求的Basic認證

    本文向向大家仔細的介紹了如何使用Shiro實現(xiàn)一個Http請求的Basic認證,有此需求的朋友可以參考下本文
    2021-06-06
  • Spring Cloud根據(jù)服務名獲取服務的ip端口問題

    Spring Cloud根據(jù)服務名獲取服務的ip端口問題

    這篇文章主要介紹了Spring Cloud根據(jù)服務名獲取服務的ip端口,本篇示例我就以Nacos注冊中心為例了,下面是我注冊的兩個服務,需要的朋友可以參考下
    2022-09-09

最新評論