LeetCode 鍊錶專題

2021-10-07 08:10:46 字數 1693 閱讀 1627

返回兩個鍊錶相交的節點

class solution(object):

def getintersectionnode(self, heada, headb):

""":type head1, head1: listnode

:rtype: listnode

"""if not heada and not headb:

return none

p1,p2=heada,headb

while(p1!=p2):

p1=p1.next if p1 else headb #短的接上長的,迴圈到長的也走完的時候,短和長的差便補上了。畫圖便可以理解

p2=p2.next if p2 else heada

return p1

返回鍊錶的頭結點。

# definition for singly-linked list.

# class listnode(object):

# def __init__(self, x):

# self.val = x

# self.next = none

'''快慢指標,之間相隔n個元素'''

class solution(object):

def removenthfromend(self, head, n):

""":type head: listnode

:type n: int

:rtype: listnode

"""fast=head

slow=head

for i in range(n):

fast=fast.next

if not fast:

return slow.next

while fast.next:

fast=fast.next

slow=slow.next

slow.next=slow.next.next

return head

# 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

"""prehead = listnode(0)

prev = prehead

while l1 and l2:

if l1.val <= l2.val:

prev.next = l1

l1 = l1.next

else:

prev.next = l2

l2 = l2.next

prev=prev.next

prev.next=l1 if l1 is not none else l2

return prehead.next

leetCode 鍊錶專題

sort a linked list in o n log n time using constant space complexity.用歸併排序 其中只是建立了乙個prehead節點 占用空間o 1 時間o nlogn public class solution 常規合併排序思路 listnod...

Leetcode鍊錶專題

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...

鍊錶專題 4 鍊錶

鍊錶是一大堆節點合起來連起來組成的表的總稱。其中每個節點中都有指標變數指向列表中的下乙個節點。鍊錶中第乙個節點被稱之為表頭 head 所以將第乙個節點的指標變數命名為head。最後乙個節點並沒有神馬特殊的名字,但是它 最後乙個節點 有一項特殊的屬性 最後乙個節點將null作為最後乙個變數的值 所以檢...