99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 22:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

一、引子

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

二、題目

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

1、思路

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

兩條相交的鏈表呈Y型??梢詮膬蓷l鏈表尾部同時(shí)出發(fā),最后一個(gè)相同的結(jié)點(diǎn)就是鏈表的第一個(gè)相同的結(jié)點(diǎn)。可以利用棧來(lái)實(shí)現(xiàn)。時(shí)間復(fù)雜度有O(m + n), 空間復(fù)雜度為O(m + n)

2、編程實(shí)現(xiàn)

python

代碼實(shí)現(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
        
        #定義一個(gè)新的棧倒敘存放兩個(gè)節(jié)點(diǎn)
        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ù),樂享生活:我們的公眾號(hào)計(jì)算機(jī)視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關(guān)注!

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

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

    關(guān)注

    1806

    文章

    49008

    瀏覽量

    249311
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8501

    瀏覽量

    134580
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122785
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    使用兩個(gè)級(jí)聯(lián)MMCM第二個(gè)是否會(huì)影響第一個(gè)MMCM的抖動(dòng)?

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

    HarmonyOS編寫第一個(gè)頁(yè)面

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

    線性表、順序表和鏈表

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

    如何編譯第一個(gè)文件

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

    STM32第一個(gè)例子

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

    合并兩個(gè)排序的鏈表

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

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

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

    Linux USB總線的兩個(gè)鏈表

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

    第一個(gè)STM32CubeIDE項(xiàng)目

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

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

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

    C語(yǔ)言入門之鏈表概述

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

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

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

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

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

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

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