java 數(shù)據(jù)結(jié)構(gòu)單鏈表的實(shí)現(xiàn)
java 數(shù)據(jù)結(jié)構(gòu)單鏈表的實(shí)現(xiàn)
單鏈表實(shí)現(xiàn)鏈表的打印及元素刪除操作,鏈表的實(shí)現(xiàn)主要是next屬性的定義,將一堆節(jié)點(diǎn)關(guān)聯(lián)起來的。實(shí)現(xiàn)簡單的鏈表如下:
public class LinkNode {
private int value;
private LinkNode next;
public LinkNode(int x) {
value = x;
}
public LinkNode getNext(){
return next;
}
public void setNext(LinkNode next) {
this.next = next;
}
public int getValue() {
return value;
}
}
鏈表操作工具類如下:
public class LinkNodeUtil {
public LinkNode deleteNode(LinkNode list,LinkNode node) {
//空鏈表
if(node==null||list==null||list.getNext()==null){
return list;
}
//查找node節(jié)點(diǎn)
LinkNode curNode = list;
LinkNode preNode = null;
LinkNode next = list.getNext();
while(curNode!=null){
if(curNode.getValue()==node.getValue()){//找到
System.out.println("找到待刪除對象了。"+node.getValue());
break;
}
preNode = curNode;
curNode = next;
next = next.getNext();
}
//刪除node節(jié)點(diǎn)
if(preNode==null){
//第一個(gè)元素刪除操作直接修正list為next:curNode-next
return next;
}else{
//刪除中間節(jié)點(diǎn)中間:preNode-curNode-next
preNode.setNext(next);
return list;
}
}
public void printListNode(LinkNode list){
LinkNode node = list;
while(node!=null){
System.out.println(node.getValue());
node = node.getNext();
}
}
public static void main(String[] args) {
LinkNode n1 = new LinkNode(1);
LinkNode n2 = new LinkNode(2);
LinkNode n3 = new LinkNode(3);
LinkNode n4 = new LinkNode(4);
n1.setNext(n2);
n2.setNext(n3);
n3.setNext(n4);
n4.setNext(null);
LinkNodeUtil s = new LinkNodeUtil();
s.printListNode(n1);
s.printListNode(s.deleteNode(n1, n3));
}
}
注意鏈表刪除節(jié)點(diǎn)如果是第一個(gè)節(jié)點(diǎn)的話,直接將鏈表對象賦值給next對象并返回。鏈表的簡單知識(shí),記錄于此。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Java數(shù)據(jù)結(jié)構(gòu)之鏈表詳解
- Java數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解
- Java 單鏈表數(shù)據(jù)結(jié)構(gòu)的增刪改查教程
- Java數(shù)據(jù)結(jié)構(gòu)之鏈表、棧、隊(duì)列、樹的實(shí)現(xiàn)方法示例
- Java描述數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之鏈表的增刪改查詳解
- Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實(shí)現(xiàn)方法示例
- Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法
- 詳解java數(shù)據(jù)結(jié)構(gòu)與算法之雙鏈表設(shè)計(jì)與實(shí)現(xiàn)
- Java數(shù)據(jù)結(jié)構(gòu)之鏈表(動(dòng)力節(jié)點(diǎn)之Java學(xué)院整理)
- java 數(shù)據(jù)結(jié)構(gòu)之刪除鏈表中的元素實(shí)例代碼
- JAVA 數(shù)據(jù)結(jié)構(gòu)鏈表操作循環(huán)鏈表
- Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作實(shí)現(xiàn)代碼
- Java模擬有序鏈表數(shù)據(jù)結(jié)構(gòu)的示例
- Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解
- java數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)雙向鏈表的示例
- java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)單鏈表示例(java單鏈表)
- Java數(shù)據(jù)結(jié)構(gòu)之鏈表的增刪查改詳解
相關(guān)文章
JavaWeb實(shí)現(xiàn)郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
SpringBoot?2.x?接入非標(biāo)準(zhǔn)SSE格式大模型流式響應(yīng)的實(shí)戰(zhàn)解決方案
本文介紹了在SpringBoot2.7.3環(huán)境中接入非標(biāo)準(zhǔn)SSE格式大模型流式響應(yīng)的實(shí)戰(zhàn)解決方案,通過自定義實(shí)現(xiàn),解決了大模型返回?cái)?shù)據(jù)格式不符合標(biāo)準(zhǔn)SSE規(guī)范的問題,關(guān)鍵步驟包括引入Gradle依賴、配置WebClient、處理粘包、格式兼容和雙重過濾機(jī)制,感興趣的朋友跟隨小編一起看看吧2025-02-02
springboot整合nacos,如何讀取nacos配置文件
這篇文章主要介紹了springboot整合nacos,如何讀取nacos配置文件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Java 動(dòng)態(tài)模擬操作系統(tǒng)進(jìn)程調(diào)度算法
這篇文章主要介紹了采用java語言編程模擬N個(gè)進(jìn)程采用動(dòng)態(tài)高優(yōu)先權(quán)優(yōu)先進(jìn)程調(diào)度算法。文中代碼具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2021-12-12
SpringBoot異步調(diào)用方法實(shí)現(xiàn)場景代碼實(shí)例
這篇文章主要介紹了SpringBoot異步調(diào)用方法實(shí)現(xiàn)場景代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
三種SpringBoot中實(shí)現(xiàn)異步調(diào)用的方法總結(jié)
Spring Boot 提供了多種方式來實(shí)現(xiàn)異步任務(wù),這篇文章主要為大家介紹了常用的三種實(shí)現(xiàn)方式,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-05-05
Java中將String轉(zhuǎn)換為char數(shù)組的三種方式
這篇文章主要介紹了三種將字符串轉(zhuǎn)換為字符數(shù)組的方法,分別是toCharArray()、charAt()和循環(huán)、getChars(),每種方法都有其適用場景和優(yōu)缺點(diǎn),需要的朋友可以參考下2024-12-12

