Leetcode 160 Intersection of Two Linked Lists

題意

給定兩個鏈表,找這兩個鏈表第一個公共節點,如果沒有返回nullptr

題目鏈接

https://leetcode.com/problems/intersection-of-two-linked-lists/description/

題解

兩個指針分別從兩個鏈表(記錄為表A,表B)的表頭出發,并且記錄到表尾移動的步數,得到兩個指針移動的步數之差 x x x。步數之差為正數,那么把表A的指針移動 x x x步,否則移動表B的指針 ? x -x ?x步。然后兩個指針移動到表尾,得到答案。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *p1 = headA;ListNode *p2 = headB;int cnt1 = 0;int cnt2 = 0;while(p1) {p1 = p1->next;cnt1++;}while(p2) {p2 = p2->next;cnt2++;}p1 = headA;p2 = headB;int cnt3 = abs(cnt1 - cnt2);if(cnt1 >= cnt2) {for(int i = 0; i < cnt3; i++) {p1 = p1->next;}} else {for(int i = 0; i < cnt3; i++) {p2 = p2->next;}            }while(p1 != p2 && p1 != nullptr) {p1 = p1->next;p2 = p2->next;}return p1 == nullptr ? nullptr : p1;}
};

算法復雜度: O ( m + n ) O(m+n) O(m+n) m m m n n n分別為兩個表的長度
空間復雜度: O ( 1 ) O(1) O(1)

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

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

相關文章

C語言——結構體、聯合、枚舉

C語言中自定義類型 結構體結構體變量的創建和初始化結構體傳參結構體內存對齊(如何存儲) 聯合體(共用體)聯合體創建和初始化聯合體大小(如何存儲) 枚舉類型枚舉類型創建枚舉類型初始化枚舉的優點(相較于define) 前言 C語言中有內置類型和自定義類型&#xff0c;內置類型就像int…

利用pprof對golang進行性能分析

利用pprof進行性能分析 pprof性能分析的5個方面 一、性能分析的五個核心維度 CPU分析 - 剖析程序的CPU使用情況&#xff0c;定位高耗時函數 內存分析 - 追蹤內存分配與泄露&#xff0c;優化內存使用模式 IO分析 - 監控文件/網絡IO操作&#xff0c;發現瓶頸資源 Goroutine分…

IntelliJ IDEA 調試技巧指南

在日常開發中&#xff0c;調試是不可或缺的一部分。掌握調試工具的使用可以讓我們更高效地定位和解決問題。本文將介紹一些在 IntelliJ IDEA 中常用的調試技巧&#xff0c;希望能幫助你在開發過程中更順暢地解決問題。 1. 方法斷點&#xff1a;快速定位實現類 方法斷點可以幫…

gitlab 提交pr

在 GitLab 中&#xff0c;提交合并請求&#xff08;Merge Request, MR&#xff09;的大致流程如下&#xff1a; 1. 創建新分支 如果你還沒有創建新的功能分支&#xff0c;可以使用以下命令創建并切換到新分支&#xff1a; git checkout -b feature-branch說明&#xff1a;f…

halcon幾何測量(二)計算距離和角度的函數

目錄 一、計算兩條線之間的夾角二、計算一條直線和水平軸之間的夾角三、計算兩個輪廓之間的最小距離四、計算兩個輪廓之間的最小距離和對應的點五、計算直線和區域之間的最小和最大距離六、計算點到輪廓線之間的距離七、計算點到直線的距離八、計算點到點的距離九、計算點和區域…

【Linux操作系統——學習筆記二】Linux簡單導航命令操作

一、前言 學習Linux&#xff0c;本質上是學習在命令行下熟練使用Linux的各類命令。 命令行&#xff1a;是一種通過輸入命令和參數與計算機系統進行交互的方式&#xff0c;可以使用各種字符化命令對系統發出操作指令&#xff0c;打開Linux終端&#xff0c;進入命令行界面。 …

新安裝的cursor安裝不了插件

我安裝的cursor版本0.47.5 直接說解決辦法 找到安裝路徑cursor\resources\app下的product.json 修改https://marketplace.cursorapi.com為https://marketplace.visualstudio.com

算法基礎篇(藍橋杯常考點)

算法基礎篇 前言 算法內容還有搜索&#xff0c;數據結構&#xff08;進階&#xff09;&#xff0c;動態規劃和圖論 數學那個的話大家也知道比較難&#xff0c;放在最后講 這期包含的內容可以看目錄 模擬那個算法的話就是題說什么寫什么&#xff0c;就不再分入目錄中了 注意事…

《解鎖華為黑科技:MindSpore+鴻蒙深度集成奧秘》

在數字化浪潮洶涌澎湃的當下&#xff0c;人工智能與操作系統的融合已成為推動科技發展的核心驅動力。華為作為科技領域的先鋒&#xff0c;其AI開發框架MindSpore與鴻蒙系統的深度集成備受矚目&#xff0c;開啟了智能生態的新篇章。 華為MindSpore&#xff1a;AI框架的創新先鋒…

雙3060、Ubuntu22.04、cuda12.8安裝deepseek 32b-Q8

以下是針對雙RTX 3060顯卡&#xff08;12GB顯存&#xff09;在Ubuntu 22.04系統部署DeepSeek-R1-32b-qwen-distill-q8模型的完整流程&#xff0c;結合最新技術規范與魔塔社區資源&#xff1a; 一、驅動與CUDA環境配置 1. 禁用開源驅動 bash sudo tee /etc/modprobe.d/blackli…

K8S學習之基礎三十四:K8S之監控Prometheus部署pod版

使用 Kubernetes Pod 的方式部署 Prometheus 是一種常見的方法&#xff0c;尤其是在容器化和微服務架構中。以下是詳細的步驟&#xff1a; 1. 創建命名空間&#xff08;可選&#xff09; 為了方便管理&#xff0c;可以為 Prometheus 創建一個單獨的命名空間。 yaml 復制 a…

Linux top 命令詳解:從入門到高級用法

Linux top 命令詳解&#xff1a;從入門到高級用法 在 Linux 系統中&#xff0c;top 是一個強大的實時監控工具&#xff0c;用于查看系統資源使用情況和進程狀態。它可以幫助你快速了解 CPU、內存、負載等信息&#xff0c;是系統管理員和開發者的日常利器。本文將從基本用法開始…

uniapp-x vue 特性

生命周期 在組合式API中&#xff0c;組件可以監聽應用和頁面的生命周期。但由于應用和頁面都有onShow和onHide&#xff0c;導致重名。所以在組合式的組件中監聽頁面的顯示隱藏&#xff0c;改為了onPageShow和onPageHide。 這個和uniapp不一樣&#xff0c;uniapp自定義組件無法…

HTML5掃雷游戲開發實戰

HTML5掃雷游戲開發實戰 這里寫目錄標題 HTML5掃雷游戲開發實戰項目介紹技術棧項目架構1. 游戲界面設計2. 核心類設計 核心功能實現1. 游戲初始化2. 地雷布置算法3. 數字計算邏輯4. 掃雷功能實現 性能優化1. DOM操作優化2. 算法優化 項目亮點技術難點突破1. 首次點擊保護2. 連鎖…

Qt之自定義界面組件 一

通過qt中的painter繪圖事件繪制一個電池電量圖的變化。效果如下圖 創建一個基于界面widget工程&#xff0c;在wdiget界面添加一個widget界面,將添加的widget界面的類提升為Tbattery.在Tbattery類中重寫painEvent電池電量代碼 文件目錄結構 主要部分代碼 //Tbattery.cpp #inc…

LeRobot源碼剖析——對機器人各個動作策略的統一封裝:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 過去2年多的深入超過此前7年&#xff0c;全靠夜以繼日的勤奮&#xff0c;一天當兩天用&#xff0c;摳論文 摳代碼 和大模型及具身同事討論&#xff0c;是目前日常 而具身庫里&#xff0c;idp3、π0、lerobot值得反復研究&#xff0c;故&#xff0c;近期我一直在摳π0及l…

數據結構篇——線索二叉樹

一、引入 遍歷二叉樹是按一定規則將二叉樹結點排成線性序列&#xff0c;得到先序、中序或后序序列&#xff0c;本質是對非線性結構線性化&#xff0c;使結點&#xff08;除首尾&#xff09;在線性序列中有唯一前驅和后繼&#xff1b;但以二叉鏈表作存儲結構時&#xff0c;只能獲…

汽車保養記錄用什么軟件記錄,汽車維修記錄查詢系統,佳易王汽車保養維護服務記錄查詢管理系統操作教程

一、概述 本實例以佳易王汽車保養維護服務記錄查詢管理系統為例說明&#xff0c;其他版本可參考本實例。試用版軟件資源可到文章最后了解&#xff0c;下載的文件為壓縮包文件&#xff0c;請使用免費版的解壓工具解壓即可試用。 軟件特點&#xff1a;1、功能實用&#xff0c;操…

Sqlmap注入工具簡單解釋

安裝 1. 安裝 Python SQLMap 是基于 Python 開發的&#xff0c;所以要先安裝 Python 環境。建議安裝 Python 3.9 或更高版本&#xff0c;可從 Python 官方網站 下載對應操作系統的安裝包&#xff0c;然后按照安裝向導完成安裝。 2. 獲取 SQLMap 可以從 SQLMap 的官方 GitHu…

LLM自動化評測

使用的數據集&#xff1a;ceval-exam import requests from datasets import load_dataset, concatenate_datasets import re from tqdm import tqdm import re, time, tiktoken, ollama from ollama import ChatResponse from ollama import Optionsdef llm(model, query, te…