返回兩個鍊錶相交的節點
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作為最後乙個變數的值 所以檢...