搜尋
首頁Javajava教程Java實作從頭到尾列印鍊錶的實例分析

這篇文章主要介紹了Java程式實作從頭到尾列印鍊錶程式碼實例,小編覺得挺不錯的,這裡分享給大家,供需要的朋友參考。

問題描述:輸入一個鍊錶的頭結點,從尾巴到頭反過來印出每個結點的值。

首先定義鍊錶結點


public class ListNode {
    int val;
    ListNode next = null;
    ListNode(int val){
      this.val = val;
    }
  }

思路1:此題明顯想到是利用堆疊的思想,後進先出,先遍歷鍊錶,依序將結點值進棧。最後在遍歷棧出棧。


public static Stack<Integer> printListReverse_Stack(ListNode listNode){
    Stack<Integer> stack = new Stack<Integer>();
    if(listNode != null){
      ListNode p = listNode;
      while(p != null){
        stack.add(p.val);
        p = p.next;
      }
    }
    return stack;
  }

想法2:直接遍歷鍊錶,依照頭插法依序插入ArrayList即可



########################################################################################################################################################################################### ###
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode){//表头也存储元素
    ArrayList<Integer> print = new ArrayList<Integer>();
    if(listNode == null){
      return print;
    }
    int add = 0;
    ListNode p = listNode;
    while(p != null){
      print.add(0, p.val);
      p = p.next;
    }
    return print;
  }
######思路3:可以使用遞迴的想法(本質也是堆疊的想法)###############
public ArrayList<Integer> printListReversely_Recursively(ListNode listNode){
    ArrayList<Integer> print = new ArrayList<Integer>();
    if(listNode == null){
      return print;
    }
    print.addAll(printListReversely_Recursively(listNode.next));
    print.add(listNode.val);
    return print;
  }
######來總結## ####

以上是Java實作從頭到尾列印鍊錶的實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
後端新人如何選擇Java項目管理工具:Maven還是IntelliJ?使用IDEA自帶的Maven還是額外下載?後端新人如何選擇Java項目管理工具:Maven還是IntelliJ?使用IDEA自帶的Maven還是額外下載?Apr 19, 2025 pm 06:42 PM

後端新人如何選擇Java項目管理工具?剛開始學習後端開發的新手,往往會在選擇項目管理工具上感到困惑。特�...

Java程序員如何入門音視頻開發?需要學習C  嗎?Java程序員如何入門音視頻開發?需要學習C 嗎?Apr 19, 2025 pm 06:39 PM

Java程序員如何入門音視頻開發?學習資源推薦作為一名Java程序員,如果你正在參與一個視頻項目卻對音視頻技�...

poi-tl繪製雙Y軸折線圖時,為何出現折線數量翻倍?poi-tl繪製雙Y軸折線圖時,為何出現折線數量翻倍?Apr 19, 2025 pm 06:33 PM

poi-tl繪製雙Y軸折線圖時折線數量翻倍的排查在使用poi-tl庫繪製包含兩個Y軸的折線圖時,遇到一個奇怪的問題:�...

在Spring Cloud Alibaba中如何將業務模塊的Entity、Mapper、Service集中到Common模塊?在Spring Cloud Alibaba中如何將業務模塊的Entity、Mapper、Service集中到Common模塊?Apr 19, 2025 pm 06:30 PM

在SpringCloudAlibaba中如何將業務模塊的Entity、Mapper、Service集中到Common模塊?在使用SpringCloud...

Go語言如何實現國密SM4和SM2算法的加解密以及互聯互通?Go語言如何實現國密SM4和SM2算法的加解密以及互聯互通?Apr 19, 2025 pm 06:27 PM

Go語言實現國密SM4和SM2加解密本文將詳細介紹如何使用Go語言實現國密SM4和SM2算法的加解密流程,以滿足與Java應�...

在Python項目中是否需要進行分層?在Python項目中是否需要進行分層?Apr 19, 2025 pm 06:24 PM

在Python項目中是否需要分層?最近我在學習Python時,注意到Django開源項目中,很多都在views函數里編寫了大量的�...

如何使用MapStruct簡化系統對接中的字段映射問題?如何使用MapStruct簡化系統對接中的字段映射問題?Apr 19, 2025 pm 06:21 PM

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境