Java鏈表的天然遞歸結構性質圖文與實例分析
本文實例分析了Java鏈表的天然遞歸結構性質。分享給大家供大家參考,具體如下:
有關鏈表,參考之前的文章學習。
要求:使用遞歸刪除鏈表中指定的所有元素值。
一、圖文分析
假設有這么一個鏈表,如下圖:

分析:基于鏈表的宏觀語意(遞歸是問題更小的子過程)進行分析
我們可以把上述鏈表看成是一個頭結點后面掛接了一個更小的鏈表組成,如下圖:

此時我們可以把鏈表概括成如下的鏈表結構:

1、在一個頭結點+更小的鏈表基礎上,從更小的鏈表中刪除指定元素,得到一個全新的鏈表--圖中紅絲的方塊。

此時我們需要關心如何根據(jù)紅絲的方塊代碼的鏈表構建出原問題的解-------也就是包括了原來頭結點(頭結點e)在內的情況。
2.判斷頭結點e是否是需要被刪除的元素值,若頭結點是不需要被刪除的,此時的鏈表結構為頭結點e+紅色方塊,否則為紅色方塊,相關結構圖如下:

二、代碼實現(xiàn)
package LeetCodeSubject;
/*
* 使用虛擬頭節(jié)點
* */
class Solution3 {
public ListNode removeElements(ListNode head, int val) {
if (head == null)
return null;
ListNode res = removeElements(head.next, val);
if (head.val == val)
return res;
else {
head.next = res;
return head;
}
}
public static void main(String[] args) {
int[] nums = {1, 2, 6, 3, 4, 5, 6};
ListNode head = new ListNode(nums);
System.out.println(head);
ListNode res = (new Solution()).removeElements(head, 6);
System.out.println(res);
}
}
結果如下:

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
- Java基于二分搜索樹、鏈表的實現(xiàn)的集合Set復雜度分析實例詳解
- java鏈表應用--基于鏈表實現(xiàn)隊列詳解(尾指針操作)
- Java基于鏈表實現(xiàn)棧的方法詳解
- Java鏈表中元素刪除的實現(xiàn)方法詳解【只刪除一個元素情況】
- Java實現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解
- Java鏈表中添加元素的原理與實現(xiàn)方法詳解
- Java鏈表(Linked List)基本原理與實現(xiàn)方法入門示例
- Java實現(xiàn)刪除排序鏈表中的重復元素的方法
- 用Java實現(xiàn)一個靜態(tài)鏈表的方法步驟
- Java均攤復雜度和防止復雜度的震蕩原理分析
- Java針對封裝數(shù)組的簡單復雜度分析方法
- Java底層基于鏈表實現(xiàn)集合和映射--集合Set操作詳解
相關文章
使用EasyPOI實現(xiàn)多sheet動態(tài)列導出
這篇文章主要為大家詳細介紹了如何使用EasyPOI根據(jù)指定時間范圍創(chuàng)建動態(tài)列,以及如何將數(shù)據(jù)組織成符合要求的格式并導出,感興趣的可以了解下2025-03-03
Spring MVC-@RequestMapping注解詳解
@RequestMapping注解的作用,就是將請求和處理請求的控制器方法關聯(lián)起來,建立映射關系。這篇文章主要給大家介紹了關于SpringMVC中@RequestMapping注解用法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-04-04
xxl-job 帶參數(shù)執(zhí)行和高可用部署方法
這篇文章主要介紹了xxl-job 帶參數(shù)執(zhí)行和高可用部署,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
使用IDEA直接連接MySQL數(shù)據(jù)庫的方法
這篇文章主要介紹了如何使用IDEA直接連接MySQL數(shù)據(jù)庫,首先需要新建一個空項目,第一次連接 需要先下載驅動,文中給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-04-04
解決運行jar包出錯:ClassNotFoundException問題
這篇文章主要介紹了解決運行jar包出錯:ClassNotFoundException問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12

