7月8日 四道經典單鏈表oj題

大家好呀,本博客目的在于記錄暑假學習打卡,后續會整理成一個專欄,主要打算在暑假學習完數據結構,因此會發一些相關的數據結構實現的博客和一些刷的題,個人學習使用,也希望大家多多支持,有不足之處也請指出,謝謝大家。

一,203.移除鏈表元素

. - 力扣(LeetCode)

方法一:定義新鏈表

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {if (head == null)return head;ListNode newtail = head;ListNode newhead = new ListNode();ListNode cur = newhead;while (newtail != null) {if (newtail.val != val) {cur.next = newtail;cur = newtail;newtail = newtail.next;} else {if (newtail.next == null)cur.next = null;newtail = newtail.next;}}return newhead.next;}
}

方法二:在原鏈表基礎上刪除

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {if (head == null)return head;ListNode prev = head;ListNode pcur = head.next;while (pcur != null) {if (pcur.val == val) {prev.next = pcur.next;pcur = pcur.next;} else {prev = pcur;pcur = pcur.next;}}if(head.val==val)head=head.next;return head;}
}

二,206.反轉鏈表

. - 力扣(LeetCode)

采用了把后面的節點頭插到頭節點前面的方式

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {if (head == null)return head;ListNode cur = head.next;head.next = null;ListNode curN;while (cur != null) {curN = cur.next;cur.next = head;head = cur;cur = curN;}return head;}
}

三,876鏈表的中間節點

. - 力扣(LeetCode)

運用了快慢指針

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode middleNode(ListNode head) {if(head==null)return head;ListNode fast=head;ListNode slow=head;while(fast!=null&&fast.next!=null){fast=fast.next.next;slow=slow.next;}return slow;}
}

四,面試題02.02 返回倒數第k個節點

. - 力扣(LeetCode)

采用快慢指針

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/
class Solution {public int kthToLast(ListNode head, int k) {if(head==null)return -1;ListNode fast=head;ListNode slow=head;int count=0;while(count!=k-1){fast=fast.next;count++;}while(fast.next!=null){fast=fast.next;slow=slow.next;}return slow.val;}
}

本期博客就到這里,感謝閱讀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43027.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS--表格自適應寬度并設置最小寬度

原文網址&#xff1a;CSS--表格自適應寬度并設置最小寬度_IT利刃出鞘的博客、-CSDN博客 簡介 本文介紹怎樣讓HTML的表格自適應寬度。 Java技術星球&#xff1a;way2j.com 問題描述 默認樣式下&#xff0c;表格會出現某一列很窄的情況&#xff1a; 代碼&#xff1a; <h…

Redission 解鎖異常:attempt to unlock lock, not locked by current thread by node id

標題&#xff1a;解鎖異常&#xff1a;Redission中的"attempt to unlock lock, not locked by current thread by node id"問題分析與解決方案 在分布式系統中&#xff0c;鎖是常用的同步機制&#xff0c;用于保護共享資源&#xff0c;避免并發沖突。Redission是一個…

java-多線程 2

### 7. 線程池 線程池是管理和復用線程的機制&#xff0c;可以避免頻繁創建和銷毀線程的開銷。Java 提供了 Executor 框架來管理線程池。 #### 7.1 使用 Executors 工廠類 Executors 工廠類提供了一些靜態方法&#xff0c;用于創建常見類型的線程池。 java import java.uti…

[240708] 中國 AI 企業在世界人工智能大會上展現韌性與創新

目錄 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國科技公司在本周上海舉行的世界人工智能大會上展現出強大的韌性和創新能力。超過150 種 AI 相關產品和解決方案在大會上展出&#xff0c;包括商湯科技、華為、科大訊…

電機工廠MES系統-提升生產效率與質量的關鍵

本文將詳細介紹萬界星空科技電機行業MES系統的特隨著電機行業的快速發展&#xff0c;生產管理的復雜性和精細度日益提高。為了應對這一挑戰&#xff0c;萬界星空科技MES&#xff08;制造執行系統&#xff09;解決方案&#xff0c;為電機行業帶來了前所未有的生產管理變革。點、…

Elasticsearch 分析器(Analyzer)的作用和配置

在Elasticsearch中&#xff0c;分析器&#xff08;Analyzer&#xff09;是文本處理的核心組件&#xff0c;它負責將輸入的文本轉換為可用于搜索和索引的詞項&#xff08;tokens&#xff09;。這一過程涉及多個步驟&#xff0c;包括字符過濾、分詞和標記過濾&#xff0c;共同決定…

js替換對象內部的對象名稱或屬性名稱-(第二篇)遞歸

1.代碼示例&#xff1a; function replaceKey(obj, oldKey, newKey) {// 如果不是對象或者oldKey不存在&#xff0c;直接返回原對象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是數組&#xff0c;遍歷數組每個元素if (Array.isArray(obj)) {obj…

laravel設計模式詳解

目錄 創造模式 一. 工廠方法模式 1. Eloquent ORM 模型工廠 2. 表單請求工廠 3. 服務容器中的工廠方法 二. 抽象工廠模式 1. 配置文件 2. 服務提供者 3. 門面&#xff08;Facades&#xff09; 4. 多環境配置 5. 依賴注入容器 三.原型模式 1. 配置對象的復制 2. 請…

MyBatis的底層機制

手寫MyBatis底層機制 讀取配置文件&#xff0c;得到數據庫連接 思路 引入必要的依賴需要寫一個自己的config.xml文件&#xff0c;在里面配置一些信息&#xff0c;driver&#xff0c;url &#xff0c;password&#xff0c;username需要編寫Configuration類&#xff0c;對 自己…

aosp 單獨grep某種類型文件,加快grep速度。

1、問題 source build/envsetup.sh lunch xxx 后可以 mgrep 可以單獨搜索makefile文件 cgrep 可以單獨搜索c/c文件 jgrep 可以單獨搜索java文件 具體可以查看build/envsetup.sh cat build/envsetup.sh function jgrep() {find . -name .repo -prune -o -name .git -prune -o …

我“硬剛”mmkv開源庫對于版本號的定義贏啦!

我“硬剛”mmkv開源庫勝利啦&#xff01; 前情是這個帖子https://blog.csdn.net/jzlhll123/article/details/139917169 之前項目中將mmkv1.3.4升級到1.3.5或者1.3.6&#xff0c;就從firebase后臺上看到crash。 java.lang.UnsatisfiedLinkError: dlopen failed: library “libmm…

C#面:闡述什么是依賴注入?

依賴注入&#xff08;Dependency Injection&#xff0c;簡稱DI&#xff09;是一種設計模式&#xff0c;用于解耦組件之間的依賴關系。在傳統的編程模式中&#xff0c;一個對象通常會直接創建和管理它所依賴的其他對象。而在依賴注入中&#xff0c;對象不再負責創建和管理它所依…

申請EV代碼簽名證書費用是多少?

代碼簽名證書是確保軟件安全性和可信度的關鍵工具&#xff0c;在軟件開發領域扮演著至關重要的角色。EV代碼簽名證書&#xff0c;即擴展驗證代碼簽名證書&#xff0c;以其最高級別的安全性和信任度&#xff0c;成為大型企業或對安全性要求較高的軟件的首選。本文旨在深入探討EV…

2024最新版若依-RuoYi-Vue3-PostgreSQL前后端分離項目部署手冊教程

項目簡介: RuoYi-Vue3-PostgreSQL 是一個基于 RuoYi-Vue3 框架并集成 PostgreSQL 數據庫的項目。該項目提供了一套高效的前后端分離的開發解決方案&#xff0c;適用于中小型企業快速構建現代化的企業級應用。此項目結合了 RuoYi-Vue-Postgresql 和 RuoYi-Vue3 的優點&#xff0…

07.C2W2.Part-of-Speech (POS) Tagging and Hidden Markov Models

往期文章請點這里 目錄 OverviewPart of Speech TaggingMarkov ChainsMarkov Chains and POS TagsPOS tags as StatesTransition probabilitiesThe transition matrixInitial probabilities Hidden Markov ModelsEmission probabilitiesSummary Calculating ProbabilitiesTran…

全志A527 T527 設置左右分屏修改為單屏幕,應用分屏改為單屏

1.前言 android13中,A527的系統設置變成,左邊是一級菜單,右側是二級菜單, 這樣跟我們以前android7/8/9的布局是不一樣的,我們需要將它修改為一級菜單,點進去才是二級菜單這種。 效果如下 2.系統設置實現分析 它這里使用的是google新出的embedding activity, 相關的知…

LabVIEW中自定義Ring控件的圖標

在LabVIEW中&#xff0c;自定義Ring控件的圖標可以讓用戶界面更加直觀和友好。以下是如何在LabVIEW中自定義Ring控件的圖標的詳細步驟&#xff1a; 步驟1&#xff1a;創建或獲取圖標 首先&#xff0c;你需要創建或獲取你想要在Ring控件中使用的圖標。你可以使用圖像編輯軟件&…

Docker拉取失敗,利用github將鏡像推送到阿里云

背景 由于近期國內docker鏡像地址失效&#xff08;2024年6月份開始&#xff09;&#xff0c;導致pull docker 鏡像總是超時。 涉及到的網址和工具 https://github.com/tech-shrimp/docker_image_pusherhttps://hub.docker.com/search阿里云 GITHUB配置 fork https://githu…

【C++初階】與C相比,C++多出來簡單又好用的語法(命名空間、輸入輸出、缺省參數、函數重載)

文章目錄 一、 C的第一個代碼1、C兼容C語言2、hello world 如何用C語法來寫 二、命名空間namespace1、為什么有命名空間2、定義3、命名空間的使用4、注意事項 三、輸入輸出四、缺省參數1、定義2、注意 五、函數重載1、定義2、使用 六、謝謝觀看&#xff01; 一、 C的第一個代碼…