2181、合并零之間的節點

2181、[中等] 合并零之間的節點

1、問題描述:

給你一個鏈表的頭節點 head ,該鏈表包含由 0 分隔開的一連串整數。鏈表的 開端末尾 的節點都滿足 Node.val == 0

對于每兩個相鄰的 0 ,請你將它們之間的所有節點合并成一個節點,其值是所有已合并節點的值之和。然后將所有 0 移除,修改后的鏈表不應該含有任何 0

返回修改后鏈表的頭節點 head

2、代碼思路:

  1. 跳過第一個節點:鏈表的開頭和結尾都包含值為 0 的節點,我們從第二個節點開始處理(即 head->next)。
  2. 累加節點值:對于每兩個 0 之間的節點,累加它們的值。
  3. 遇到 0 時創建新節點:當遇到 0 時,將前面累加的值創建一個新的節點,插入到新鏈表中。
  4. 繼續遍歷:繼續遍歷鏈表,重復上述步驟,直到遍歷完整個鏈表。返回合并后的新鏈表,忽略初始的哨兵節點。

3、代碼實現與詳細注釋

class Solution {
public:ListNode* mergeNodes(ListNode* head) {// 創建一個新的鏈表頭,用來存儲合并后的結果鏈表ListNode newhead; // 一個新鏈表的頭節點(哨兵節點)ListNode *newcur = &newhead; // 用于遍歷新鏈表的指針,初始化指向哨兵節點ListNode *cur = head->next;  // 當前鏈表從 head->next 開始,因為 head 是 0,忽略它int sum = 0; // 用于累加兩個 0 之間的節點的值// 遍歷原始鏈表,直到結束while (cur) {// 遇到值為 0 的節點時,說明需要合并并創建新節點if (cur->val == 0) {// 創建新節點,節點值為前面累加的 sum 值ListNode* newnode = new ListNode(sum);sum = 0; // 重置 sum,準備下一組合并newcur->next = newnode; // 將新節點鏈接到結果鏈表newcur = newcur->next;  // 移動指針到新節點,準備接受下一個合并節點} else {// 如果不是 0,則累加當前節點的值sum += cur->val;}cur = cur->next; // 移動到下一個節點}// 確保新鏈表的末尾指向 nullptrnewcur->next = nullptr;// 返回合并后鏈表的頭節點,跳過哨兵節點return newhead.next;}
};

4、時間復雜度:

  • 時間復雜度:O(n),其中 n 是鏈表中節點的數量。我們只需要遍歷鏈表一次。
  • 空間復雜度:O(1),只用了常數空間來存儲累加值和指針。

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

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

相關文章

相機的曝光和增益

文章目錄 曝光增益增益原理主要作用增益帶來的影響增益設置與應用 曝光 參考:B站優致譜視覺 增益 相機增益是指相機在拍攝過程中對圖像信號進行放大的一種操作,它在提高圖像亮度和增強圖像細節方面起著重要作用,以下從原理、作用、影響以…

小飛電視 2.7.0 | 高清秒播無卡頓的電視直播軟件

小飛電視采用了流行的天光YY殼進行二次開發,內置了熱門的肥羊源。更新后在加載速度和播放速度上有了顯著提升,并提供了豐富的內容和各種分類欄目,包括4K和8K頻道以及經典的直播內容如虎芽、斗魚、歪歪等。該軟件的最大特點是其穩定性和無廣告…

【Python爬蟲高級技巧】BeautifulSoup高級教程:數據抓取、性能調優、反爬策略,全方位提升爬蟲技能!

大家好,我是唐叔!上期我們聊了 BeautifulSoup的基礎用法 ,今天帶來進階篇。我將分享爬蟲老司機總結的BeautifulSoup高階技巧,以及那些官方文檔里不會告訴你的實戰經驗! 文章目錄 一、BeautifulSoup性能優化技巧1. 解析…

【愚公系列】《高效使用DeepSeek》055-可靠性評估與提升

??【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】?? ??開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! ?? 江湖人稱"愚公搬代碼",用七年如一日的精神深耕技術領域,以"…

C# Winform 入門(12)之制作簡單的倒計時

倒計時效果展示 控件展示 以下均是使用label來形成的 label 的 BorderStyle:Fixed3D ForeColor:Red Blackground:Black label 的屬性 Name: txtyear txtmonth txtday txttime txtweek txtDays txtHour txtM…

edge webview2 runtime跟Edge瀏覽器軟件安裝包雙擊無反應解決方法

軟件安裝報錯問題有需要遠程文章末尾獲取聯系方式,可以幫你遠程處理各類安裝報錯。 一 、edge webview2 runtime跟Edge瀏覽器軟件安裝包雙擊無反應 在安裝edge webview2 runtime跟Edge瀏覽器雙擊無反應沒有出現安裝界面。這個可能是 新版本的Edge WebView2 Runti…

TDengine 從入門到精通(2萬字長文)

目錄 第一章:走進 TDengine 的世界 TDengine 是個啥? TDengine 的硬核特性 性能炸裂 分布式架構,天生可擴展 SQL 用起來賊順手 寫入方式花樣多 內置緩存,省心又省力 TDengine 能干啥? 智能制造 能源管理 物聯網平臺 工業大數據 第二章:上手 TDengine:安裝與…

keil5忽略警告

目錄 前言 風險不多做贅述。強迫癥患者使用。警告有時候就是問題關鍵,被屏蔽了就不會在意。小心使用 環境: 芯片:STM32F103C8T6 Keil:V5.35.0.2 一、示例 警告內容如下: 二、解決辦法 1.先看這位 MDK-Keil AC6 …

【Linux】iptables命令的基本使用

語法格式 iptables [-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]注意事項 不指定表名時,默認使用 filter 表不指定鏈名時,默認表示該表內所有鏈除非設置規則鏈的缺省策略,否則需要指定匹配條件 設置規則內容 -A&#xff1a…

MyBatis查詢語句專題、動態SQL、MyBatis的高級映射及延遲加載

一、MyBatis查詢語句專題 模塊名:mybatis-008-select 打包方式:jar 引入依賴:mysql驅動依賴、mybatis依賴、logback依賴、junit依賴。 引入配置文件:jdbc.properties、mybatis-config.xml、logback.xml 創建pojo類&#xff1a…

Visual Studio Code SSH 連接超時對策( keep SSH alive)

文章目錄 問題解決方法一&#xff1a;配置服務端關于ClientAliveInterval和ClientAliveCountMax1、打開終端&#xff0c;打開SSH配置文件&#xff1a;輸入以下命令&#xff1a;2、打開配置文件后&#xff0c;添加以下內容&#xff1a;3、添加后&#xff0c;Esc按 <Enter>…

學透Spring Boot — 014. Spring MVC的自動配置

這是學透Spring Boot的第14篇文章&#xff0c;更多文章請移步我的專欄&#xff1a; 學透 Spring Boot_postnull咖啡的博客-CSDN博客 目錄 沒有Spring Boot時的Spring MVC 使用Spring Boot后的Spring MVC Spring MVC的自動配置解析 明確目標 入口類 Spring容器的啟動 S…

SQL語句(三)—— DQL

目錄 基本語法 一、基礎查詢 1、查詢多個字段 2、字段設置別名 3、去除重復記錄 4、示例代碼 二、條件查詢 1、語法 2、條件列表常用的運算符 3、示例代碼 三、分組查詢 &#xff08;一&#xff09;聚合函數 1、介紹 2、常見的聚合函數 3、語法 4、示例代碼 &…

LENOVO聯想ThinkBook 16 G6 ABP(21KK)恢復預裝OEM原廠Win11系統鏡像

適用機型&#xff1a;【21KK】 鏈接&#xff1a;https://pan.baidu.com/s/1lbvIh4KTbqm8EZQZfxvNIQ?pwd7vp0 提取碼&#xff1a;7vp0 聯想原裝系統自帶所有驅動、出廠主題壁紙、系統屬性聯機支持標志、Office辦公軟件、聯想瀏覽器、聯想電腦管家、聯想軟件商店、聯想智能引…

# 基于人臉關鍵點的多表情實時檢測系統

基于人臉關鍵點的多表情實時檢測系統 在計算機視覺領域&#xff0c;人臉表情識別技術已經取得了顯著的進展。它不僅可以用于娛樂應用&#xff08;如動態表情包生成&#xff09;&#xff0c;還能在心理健康監測、智能安防、人機交互等領域發揮重要作用。今天&#xff0c;我將分…

在 Ubuntu24.04 LTS 上 Docker Compose 部署基于 Dify 重構二開的開源項目 Dify-Plus

一、安裝環境信息說明 硬件資源&#xff08;GB 和 GiB 的主要區別在于它們的換算基數不同&#xff0c;GB 使用十進制&#xff0c;GiB 使用二進制&#xff0c;導致相同數值下 GiB 表示的容量略大于 GB&#xff1b;換算關系&#xff1a;1 GiB ≈ 1.07374 GB &#xff1b;1 GB ≈ …

SQL Server存儲過程和觸發器的使用

存儲過程 &#xff08;1&#xff09;創建存儲過程&#xff0c;使用Employees表中的員工人數來初始化一個局部變量&#xff0c;并調用這個存儲過程。 1. Create PROCEDURE test number1 int output --輸出參數&#xff0c;可以從程序中返回信息 2. As 3. begin 4. D…

子類是否能繼承

繼承 父類&#xff1a; 子 類 構造方法 非私有 不能繼承 私有&#xff08;private&#xff09;不能繼承 成員變量 非私有 能繼承 私有&…

2025年【山東省安全員C證】考試題及山東省安全員C證考試內容

在當今建筑行業蓬勃發展的背景下&#xff0c;安全生產已成為企業生存與發展的基石。安全員作為施工現場安全管理的直接責任人&#xff0c;其專業能力和資質認證顯得尤為重要。山東省安全員C證作為衡量安全員專業水平的重要標準&#xff0c;不僅關乎個人職業發展&#xff0c;更直…

Spring 中的 bean 生命周期

&#x1f331; 一、什么是 Bean 生命周期&#xff1f; 在 Spring 容器中&#xff0c;一個 Bean 從“創建 → 初始化 → 使用 → 銷毀”&#xff0c;經歷了完整的生命周期。 Spring 提供了 多個擴展點 讓你可以在這些階段做事情&#xff0c;比如注入資源、日志記錄、連接資源、清…