C++面試(5)-----刪除鏈表中指定值的節點

  • 操作系統:ubuntu22.04
  • IDE:Visual Studio Code
  • 編程語言:C++11

算法描述

給定一個單向鏈表的頭節點 head 和一個特定值 val,要求編寫一個函數來刪除鏈表中所有值等于 val 的節點,并返回修改后的鏈表頭節點。
示例:

輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5

解決方案

#include <iostream>struct ListNode
{int val;ListNode *next;ListNode(int x):val(x), next(nullptr){}
};void removeElements(ListNode* head, int val)
{while (head != nullptr && head->val == val){ListNode *tmp = head;head = head->next;delete tmp;}if(head ==nullptr){return;}ListNode *Cur = head;while(Cur->next != nullptr){if(Cur->next->val == val){ListNode* tmp = Cur->next;Cur->next = Cur->next->next;delete tmp;} else{Cur = Cur->next;}  }
}void printList(ListNode *head)
{while(head != nullptr){std::cout << head->val;head = head->next;} 
}
int main()
{ListNode *head = new ListNode(1);head->next = new ListNode(2);head->next->next = new ListNode(3);head->next->next->next = new ListNode(4);head->next->next->next->next = new ListNode(5);head->next->next->next->next->next = new ListNode(6);removeElements(head, 6);printList(head);
}

運行結果

12345

注意事項

  • 處理頭節點:首先檢查并處理頭節點是否為要刪除的目標值,因為頭節點沒有前驅節點。
  • 遍歷鏈表:對于每個節點,檢查其下一個節點的值是否為目標值。如果是,則跳過該節點(即改變當前節點的 next 指針指向下一個節點的下一個節點)。
  • 內存管理:每次刪除節點時,記得釋放被刪除節點占用的內存,避免內存泄漏。

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

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

相關文章

如何用AI賦能學習

由于博主是大學生&#xff0c;今天花費了大量的時間去進行期末的復習&#xff0c;不過從復習中得到了一些學習的靈感&#xff0c;即&#xff1a;如何用AI賦能學習 當我們需要掌握一門新的技能的時候&#xff0c;我們很容易的想到三種辦法&#xff1a;買書自己學&#xff0c;報…

【threejs】每天一個小案例講解:常見材質

代碼倉 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone&#xff0c;無需安裝依賴&#xff0c;直接liver-server運行/直接打開chapter01中的html文件 運行效果圖 知識要點 1. MeshBasicMaterial&#xff08;基礎網格材質&#xff09; ? 特…

springboot后端與鴻蒙的結合

軟件&#xff1a;鴻蒙devceo3.1&#xff0c;springboot項目采用IDEA 目的&#xff1a; 1、結合springboot后端與鴻蒙的結合運用。 2、Log日志查看console語句的信息。 3、引入 import http from ohos.net.http。 4、調用springboot后端提供的鏈接發送post 5、TextInput的…

minio集群通過mc mirror命令進行定時備份,支持X86和arm兩種架構

文章目錄 前言一、思路二、使用步驟1.下載mc二進制文件2.手動測試備份命令3.配置定時任務4.成功截圖 總結 前言 通過mc mirror命令對minio集群進行定時備份。 一、思路 通過mc mirror命令配合crond定時任務進行周期性的備份 二、使用步驟 1.下載mc二進制文件 wget https:…

三大能力升級,為老項目重構開辟新路徑

在軟件技術飛速迭代的今天&#xff0c;老項目重構是開發者們繞不開的難題。接口實現缺失、業務邏輯矛盾、架構規劃偏離等問題如同攔路虎&#xff0c;讓重構工作舉步維艱。而傳統的 AI 輔助方式&#xff0c;因未充分關聯項目實際情況&#xff0c;猶如 “空中造樓”&#xff0c;難…

AES加密

AES加密算法詳解 AES&#xff08;Advanced Encryption Standard&#xff09;是一種對稱密鑰分組加密算法&#xff0c;用于保護電子數據的安全性。其核心特點是通過相同的密鑰進行加密和解密&#xff0c;屬于對稱加密體系。。以下從核心特性、加密流程及安全性三方面展開說明&a…

關于聯詠(Novatek )自動曝光中Lv值的計算方式實現猜想

目錄 一、常見Lv對應的實際場景 二、常見光圈值 三、最小二乘法計算SV中的系數K

[docker]鏡像操作:關于docker pull、save、load一些疑惑解答

在使用 Docker 的過程中&#xff0c;鏡像管理是極其重要的一環。無論是拉取、保存還是加載鏡像&#xff0c;每一個步驟都可能遇到一些疑問或者誤區。 本文將結合實際案例&#xff0c;對常見的 Docker 鏡像操作問題進行系統性總結&#xff0c;幫你更好地理解 Docker 鏡像的工作機…

SFTrack:面向警務無人機的自適應多目標跟蹤算法——突破小尺度高速運動目標的追蹤瓶頸

【導讀】 本文針對無人機&#xff08;UAV&#xff09;視頻中目標尺寸小、運動快導致的多目標跟蹤難題&#xff0c;提出一種更簡單高效的方法。核心創新在于從低置信度檢測啟動跟蹤&#xff08;貼合無人機場景特性&#xff09;&#xff0c;并改進傳統外觀匹配算法以關聯此類檢測…

什么是滲透測試,對網站安全有哪些幫助?

在網絡安全的戰場中&#xff0c;網站如同暴露在數字世界的堡壘&#xff0c;時刻面臨著黑客攻擊的威脅。而滲透測試&#xff0c;就像是為網站進行一場 “模擬攻防演練”&#xff0c;它以黑客的思維和手段&#xff0c;主動出擊&#xff0c;探尋網站潛在的安全漏洞。究竟什么是滲透…

KU115LPE-V10型FPGA加速卡

KU115LPE-V10是一款基于PCI Express總線通信的FPGA加速類產品。 該產品基于Xilinx公司的的高性能Kintex Ultra-Scale FPGA設計&#xff0c;配置最大兩組DDR4緩存單元&#xff0c;每組最大支持4GB容量&#xff0c;72bit&#xff08;包含ECC&#xff0c;8bit&#xff09;&#x…

【筆記】Blockchain

區塊鏈Blockchain是一種分布式數據庫技術&#xff0c;其核心特點在于去中心化、不可篡改和透明性。它通過一系列按照時間順序排列的數據塊&#xff08;即“區塊”&#xff09;組成&#xff0c;每個數據塊都包含了一定時間內的一系列信息交易&#xff0c;并通過密碼學方法確保這…

GitHub Desktop Failure when receiving data from the peer

目錄 安裝Github Desktop簡易省流助手 解決 Git 克隆時出現的 "Failure when receiving data from the peer" 錯誤1. 網絡連接問題原因&#xff1a;解決辦法&#xff1a; 2. Git 配置問題原因&#xff1a;解決辦法&#xff1a; 3. GitHub 服務故障原因&#xff1a;解…

疏錦行Python打卡 DAY 27 函數專題2:裝飾器

def logger(func):def wrapper(*args, **kwargs):print(f"開始執行函數 {func.__name__}&#xff0c;參數: {args}, {kwargs}")result func(*args, **kwargs)print(f"函數 {func.__name__} 執行完畢&#xff0c;返回值: {result}")return resultreturn wr…

大模型布署如何選擇GPU資源?

當前主流GPU型號及其顯存大小&#xff08;顯存“大小”&#xff09;的詳細分類匯總&#xff0c;結合消費級、專業工作站級及數據中心級三大應用場景&#xff0c;數據綜合自行業常用型號及最新產品信息&#xff08;截至2025年6月&#xff09;&#xff1a; &#x1f3ae; 一、消費…

目標檢測——YOLOv12算法解讀

論文&#xff1a;YOLOv12: Attention-Centric Real-Time Object Detectors (2025.2.18) 作者&#xff1a;Yunjie Tian, Qixiang Ye, David Doermann 鏈接&#xff1a;https://arxiv.org/abs/2502.12524 代碼&#xff1a;https://github.com/sunsmarterjie/yolov12 YOLO系列算法…

JavaEE-Maven

maven Maven是?個項?管理?具, 通過pom.xml?件的配置獲取jar包&#xff0c;?不??動去添加jar包。 maven簡單, ?便, 提?我們的開發效率, 減少我們的開發Bug。 IDEA本?已經集成了Maven, 我們可以直接使?, ?需安裝。 創建maven項目 name是項目名 location是項目路徑 …

使用 C/C++的OpenCV 實時播放火柴人愛心舞蹈動畫

使用 C/OpenCV 實時播放火柴人愛心舞蹈動畫 本文將介紹如何使用 C/OpenCV 庫實時創建一個動畫窗口&#xff1a;一個火柴人捧著愛心跳舞&#xff0c;同時另一個愛心從遠處飛來并逐漸變大。動畫會實時在 OpenCV 窗口中播放&#xff0c;直到用戶按下按鍵退出。 準備工作 確保你…

復現論文報錯解決

文章目錄 一、 The detected CUDA version (12.9) mismatches the version that was used to compile PyTorch (11.8)二、error -- unsupported GNU version! gcc versions later than 11 are not supported!三、Unknown encoder libx264四、下載速度太慢、無法遞歸下載項目 一…

Python 實現 Web 靜態服務器(HTTP 協議)

目錄 一、在本地啟動 HTTP 服務器1. Windows 下安裝 node.js1&#xff09;下載安裝包2&#xff09;配置環境變量3&#xff09;安裝鏡像4&#xff09;node.js 的常用命令 2. 安裝 http-server 服務3. 使用 http-server 開啟服務1&#xff09;使用 http-server2&#xff09;詳解 …