0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

劍指Offer(36):兩個鏈表的第一個公共結(jié)點

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-10 22:40 ? 次閱讀

劍指Offer(36):兩個鏈表的第一個公共結(jié)點

一、引子

這個系列是我在??途W(wǎng)上刷《劍指Offer》的刷題筆記,旨在提升下自己的算法能力。

二、題目

輸入兩個鏈表,找出它們的第一個公共結(jié)點。

1、思路

如果存在共同節(jié)點的話,那么從該節(jié)點,兩個鏈表之后的元素都是相同的。也就是說兩個鏈表從尾部往前到某個點,節(jié)點都是一樣的。

兩條相交的鏈表呈Y型??梢詮膬蓷l鏈表尾部同時出發(fā),最后一個相同的結(jié)點就是鏈表的第一個相同的結(jié)點??梢岳脳韺崿F(xiàn)。時間復雜度有O(m + n), 空間復雜度為O(m + n)

2、編程實現(xiàn)

python

代碼實現(xiàn)方案:

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def FindFirstCommonNode(self, pHead1, pHead2):
        # write code here
        if not pHead1 or not pHead2:
            return None
        
        #定義一個新的棧倒敘存放兩個節(jié)點
        stack1 = []
        stack2 = []
        
        while pHead1:
            stack1.append(pHead1)
            pHead1 = pHead1.next
            
        while pHead2:
            stack2.append(pHead2)
            pHead2 = pHead2.next
            
        first = None
        while stack1 and stack2:
            top1 = stack1.pop()
            top2 = stack2.pop()
            if top1 is top2:
                first=top1
            else:
                break
        return first

分享技術(shù),樂享生活:我們的公眾號計算機視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關(guān)注!

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!

審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1793

    文章

    47538

    瀏覽量

    239386
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8434

    瀏覽量

    132865
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5511

    瀏覽量

    121366
收藏 人收藏

    評論

    相關(guān)推薦

    鏈表結(jié)點的數(shù)據(jù)結(jié)構(gòu)該如何定義

    當用戶需要使用鏈表管理數(shù)據(jù)時,僅需關(guān)聯(lián)數(shù)據(jù)和鏈表結(jié)點,最簡單的方式是將數(shù)據(jù)和鏈表結(jié)點打包在起。
    的頭像 發(fā)表于 09-20 16:28 ?1.5w次閱讀
    <b class='flag-5'>鏈表</b><b class='flag-5'>結(jié)點</b>的數(shù)據(jù)結(jié)構(gòu)該如何定義

    使用兩個級聯(lián)MMCM第二是否會影響第一個MMCM的抖動?

    大家好, 如果我使用兩個級聯(lián)MMCM,第二是否會影響第一個MMCM的抖動?謝謝。最好的祝福。
    發(fā)表于 06-05 11:31

    HarmonyOS編寫第一個頁面

    編寫第一個頁面在Java UI框架中,提供了種編寫布局的方式:在XML中聲明UI布局和在代碼中創(chuàng)建布局。這種方式創(chuàng)建出的布局沒有本質(zhì)上的區(qū)別,以便熟悉種方式,我們將通過XML的方
    發(fā)表于 09-17 14:34

    線性表、順序表和鏈表

    線性表、順序表和鏈表:1、線性結(jié)構(gòu)的定義:空或者只有結(jié)點?;蛘?、存在唯
    發(fā)表于 08-13 13:51 ?0次下載

    如何編譯第一個文件

    如何編譯第一個文件,感興趣可以看看
    發(fā)表于 01-21 11:16 ?0次下載

    STM32第一個例子

    STM32第一個例子是學習RAM單片機非常好的開始
    發(fā)表于 07-14 18:14 ?0次下載

    合并兩個排序的鏈表

    合并兩個排序的鏈表、題目要求 輸入兩個單調(diào)遞增的鏈表,輸出兩個
    發(fā)表于 01-16 22:02 ?598次閱讀

    以后再也不怕別人問「單鏈表」的問題啦

    「頭指針」顧名思義,是指向鏈表第一個結(jié)點的指針,如果有頭結(jié)點的話,那么就是指向頭結(jié)點的指針。它是鏈表
    的頭像 發(fā)表于 11-23 11:30 ?2390次閱讀
    以后再也不怕別人問「單<b class='flag-5'>鏈表</b>」的問題啦

    Linux USB總線的兩個鏈表

    USB 總線引出兩個首要 的鏈表,為 USB 設(shè)備
    發(fā)表于 04-20 10:33 ?989次閱讀

    第一個STM32CubeIDE項目

    使用STM32CubeIDE的第一個項目開始第一個項目添加代碼今天開始做一個STM32CubeIDE的第一個項目,首先需要說明的:STM32CubeIDE是
    發(fā)表于 12-29 19:29 ?11次下載
    <b class='flag-5'>第一個</b>STM32CubeIDE項目

    LeetCode876鏈表的中間結(jié)點介紹

    給定結(jié)點為 head 的非空單鏈表,返回鏈表的中間結(jié)點
    的頭像 發(fā)表于 01-11 17:58 ?841次閱讀
    LeetCode876<b class='flag-5'>鏈表</b>的中間<b class='flag-5'>結(jié)點</b>介紹

    C語言入門之鏈表概述

    鏈表種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動態(tài)地進行存儲分配的種結(jié)構(gòu),是根據(jù)需要開辟內(nèi)存單元。 鏈表
    的頭像 發(fā)表于 03-24 15:04 ?1282次閱讀

    鏈表數(shù)據(jù)結(jié)構(gòu)基本概念

    鏈表基本概念 頭指針: 頭指針是鏈表指向第一個結(jié)點的指針,若鏈表有頭
    的頭像 發(fā)表于 07-27 11:14 ?826次閱讀
    <b class='flag-5'>鏈表</b>數(shù)據(jù)結(jié)構(gòu)基本概念

    鏈表和雙鏈表的區(qū)別在哪里

    鏈表和雙鏈表的區(qū)別 單鏈表的每一個節(jié)點中只有指向下一個結(jié)點的指針,不能進行回溯。 雙
    的頭像 發(fā)表于 07-27 11:20 ?1734次閱讀
    單<b class='flag-5'>鏈表</b>和雙<b class='flag-5'>鏈表</b>的區(qū)別在哪里

    如何判斷兩個鏈表是否相交,假設(shè)兩個鏈表都沒有環(huán)?

    首先,很多同學會存在誤區(qū),認為兩個鏈表相交應(yīng)該這樣的。
    的頭像 發(fā)表于 08-08 17:08 ?1045次閱讀
    如何判斷<b class='flag-5'>兩個</b><b class='flag-5'>鏈表</b>是否相交,假設(shè)<b class='flag-5'>兩個</b><b class='flag-5'>鏈表</b>都沒有環(huán)?