LeetCode初級(jí)算法--鏈表02:合并兩個(gè)有序鏈表
一、引子
這是由LeetCode官方推出的的經(jīng)典面試題目清單~
這個(gè)模塊對(duì)應(yīng)的是探索的初級(jí)算法~旨在幫助入門算法。我們第一遍刷的是leetcode推薦的題目。
二、題目
將兩個(gè)有序鏈表合并為一個(gè)新的有序鏈表并返回。新鏈表是通過拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。
示例:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
1、思路
首先我們看到的數(shù)一個(gè)有序的鏈表,所以我們可以先比較兩個(gè)鏈表長度相等的部分,按照順序進(jìn)行排列,對(duì)于剩下一個(gè)鏈表的部分,直接插入到最終的鏈表中,詳細(xì)過程見代碼。
2、編程實(shí)現(xiàn)
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
new_head = ListNode(0)
#返回的是合并后的列表 所以讓一個(gè)節(jié)點(diǎn)等于這個(gè)空的節(jié)點(diǎn)
pHead = new_head
#進(jìn)行排序
while l1 and l2:
if l1.val > l2.val:
new_head.next = l2
l2 = l2.next
else:
new_head.next = l1
l1 = l1.next
new_head = new_head.next
# 遍歷剩下沒遍歷的列表
if l1:
new_head.next = l1
elif l2:
new_head.next = l2
return pHead.next
分享技術(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
人工智能
+關(guān)注
關(guān)注
1821文章
50367瀏覽量
267072 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
67文章
8567瀏覽量
137264 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5610瀏覽量
124656
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
嵌入式春招筆試高頻算法題(附解題思路)
:通過相鄰元素兩兩比較,將較大的元素逐步“冒泡”到數(shù)組末尾,重復(fù)多次,直到整個(gè)數(shù)組有序。
步驟拆解(貼合嵌入式C語言實(shí)現(xiàn)):
外層循環(huán):控制排序輪次,共需n-1輪(n為數(shù)組長度),每輪排出一個(gè)最大
發(fā)表于 03-18 10:08
圖像上兩個(gè)多邊形的ROI區(qū)域,如何獲得這兩個(gè)ROI區(qū)域重合部分的ROI
labview中,圖像上兩個(gè)多邊形的ROI區(qū)域,如何獲得這兩個(gè)ROI區(qū)域重合部分的ROI
發(fā)表于 03-16 14:03
兩個(gè)RS485-Modbus主站如何通訊
本產(chǎn)品能很好解決Master-1主站向模塊寫入數(shù)據(jù),Master-2主站讀取數(shù)據(jù);Master-2主站向模塊寫入數(shù)據(jù),Master-1主站讀取數(shù)據(jù)。由此解決兩個(gè)主站之間的互相讀通信難題。
發(fā)表于 02-08 15:32
?0次下載
頁面導(dǎo)入導(dǎo)出功能怎么用?如何快速合并兩個(gè)工程,復(fù)制粘貼注意事項(xiàng)?
頁面導(dǎo)入導(dǎo)出功能怎么用?如何快速合并兩個(gè)工程,復(fù)制粘貼注意事項(xiàng)?
發(fā)表于 02-03 14:16
單片機(jī)常用的14個(gè)C語言算法分享
兩個(gè)有序數(shù)組A、B合并成另一個(gè)有序的數(shù)組C,升序)
基本思想:
1)先在A、B數(shù)組中各取第一個(gè)元
發(fā)表于 01-29 06:59
頁面導(dǎo)入導(dǎo)出功能怎么用?如何快速合并兩個(gè)工程,復(fù)制粘貼注意事項(xiàng)?
頁面導(dǎo)入導(dǎo)出功能怎么用?如何快速合并兩個(gè)工程,復(fù)制粘貼注意事項(xiàng)?
發(fā)表于 01-28 15:17
指針難學(xué)的4點(diǎn)原因分析
));
*p = 1;
return 0;
}
程序定義了一個(gè)指針變量p,前面有個(gè)*號(hào);后面給指針p指向的內(nèi)存區(qū)域賦值1,又有個(gè)*號(hào),這兩個(gè)*號(hào)有啥區(qū)別呢?很多初學(xué)者在這里
發(fā)表于 01-16 06:12
曙光存儲(chǔ)連續(xù)斬獲兩個(gè)行業(yè)獎(jiǎng)項(xiàng)
近期,曙光存儲(chǔ)連續(xù)斬獲兩個(gè)行業(yè)獎(jiǎng)項(xiàng),自研技術(shù)產(chǎn)品在國產(chǎn)突破、AI行業(yè)應(yīng)用等方面的成果獲得廣泛關(guān)注。
無數(shù)據(jù)域雙向鏈表的代碼
下面是一個(gè)簡單的示例,演示了如何使用無數(shù)據(jù)域雙向鏈表進(jìn)行插入和訪問操作:
#include
#include// 包含offsetof宏
// 定義節(jié)點(diǎn)結(jié)構(gòu)體
struct Node
發(fā)表于 12-11 06:56
rt_object_get_information獲取到的鏈表為空怎么解決?
rtt啟動(dòng)過程,在初始化堆的時(shí)候,進(jìn)入rt_object_init,調(diào)用rt_object_get_information獲取到的鏈表為空,導(dǎo)致系統(tǒng)起不來。
發(fā)表于 10-11 11:44
一個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash?
一個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash,有一個(gè)norflash被模擬成U盤,會(huì)在中斷中操作spi。
發(fā)表于 09-26 06:18
請(qǐng)問有辦法在嵌入式單片機(jī)上實(shí)現(xiàn)對(duì)片外Flash的數(shù)據(jù)增刪功能嗎?
時(shí)間要求, 工作時(shí)斷電如何處理. 本來想試試sqlite, 但是看介紹需要幾百K內(nèi)存, 好像不是給單片機(jī)用的, 問了AI也是給我推的FlashDB, 它的KV值是支持刪除的, 但是我需要有序索引, 像一個(gè)鏈表, 現(xiàn)在有沒有現(xiàn)成的
發(fā)表于 09-23 06:10
基本半導(dǎo)體連獲兩個(gè)行業(yè)獎(jiǎng)項(xiàng)
近日,基本半導(dǎo)體憑借在碳化硅模塊領(lǐng)域的突出表現(xiàn),連獲“國產(chǎn)SiC模塊TOP企業(yè)獎(jiǎng)”和“年度優(yōu)秀功率器件產(chǎn)品獎(jiǎng)”兩個(gè)行業(yè)獎(jiǎng)項(xiàng)。
圖中兩個(gè)按鍵開關(guān)是兩個(gè)干簧管,為什么不直接對(duì)GND設(shè)計(jì)來檢測這個(gè)干簧管通斷呢?
圖中兩個(gè)按鍵開關(guān)是兩個(gè)干簧管,為什么不直接對(duì)GND設(shè)計(jì)來檢測這個(gè)干簧管通斷呢?
這樣設(shè)計(jì)的原理是什么?
發(fā)表于 06-17 06:30
看到STM8L152用兩個(gè)IO用兩個(gè)或非門檢測兩個(gè)通斷,是什么原理呢?
圖中兩個(gè)按鍵開關(guān)是兩個(gè)干簧管,為什么不直接對(duì)GND設(shè)計(jì)來檢測這個(gè)干簧管通斷呢?
這樣設(shè)計(jì)的原理是什么?
發(fā)表于 06-12 06:25
LeetCode初級(jí)算法-鏈表02:合并兩個(gè)有序鏈表
評(píng)論