LeetCode解題方法之 空指標

2021-09-08 02:29:27 字數 1601 閱讀 5123

203. remove linked list elements

1.這樣可以處理空鍊錶特殊情況,頭指標為要刪除的值的特殊情況

使用空指標p在這裡的好處在於,

1.p儲存了頭結點,

2.而最開始pre和p指向了同乙個節點物件,這樣如果首節點是空節點或等於val時,可以直接進行操作,因此首節點也可以當做普通節點來處理,返回值是p.next即可,這種解法的巧妙之處就在這裡。

class solution:

def removeelements(self, head, val):

dummynode = listnode(0)

dummynode.next = head

pre = dummynode

cur = head

while cur:

if cur.val==val:

pre.next = cur.next

else:

pre = cur

cur = cur.next

return dummynode.next

class solution:

def removeelements(self, head, val):

if not head:

return none

while head!=none and head.val==val:

head = head.next

pre = none

cur = head

while cur:

if cur.val==val:

pre.next = cur.next

else:

pre = cur

cur = cur.next

return head

class solution:

def removeelements(self, head, val):

""":type head: listnode

:type val: int

:rtype: listnode

"""while head and head.val==val:

head=head.next

p = head

while p and p.next:

if p.next.val == val:

p.next = p.next.next

else:

p = p.next

return head

class solution:

def removeelements(self, head, val):

""":type head: listnode

:type val: int

:rtype: listnode

"""if not head: return none

head.next = self.removeelements(head.next, val)

return head.next if head.val==val else head

leetcode解題之打家劫舍

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...

leetcode解題之冪函式

實現 pow x,n 即計算 x 的 n 次冪函式。題目 我對題目的第一印象就是題目很簡單,只要區別,和三種情況就好了,然後用暴力法相乘就可以了,但我再一想,leetcode絕對不會出這種弱智題,沒有太大的意義,但還是懷著半信半疑的心情用暴力法寫了一遍,結過果然不出所料超時了 然後我試著想另外的辦法...

leetcode解題之冪函式

實現 pow x,n 即計算 x 的 n 次冪函式。題目 我對題目的第一印象就是題目很簡單,只要區別,和三種情況就好了,然後用暴力法相乘就可以了,但我再一想,leetcode絕對不會出這種弱智題,沒有太大的意義,但還是懷著半信半疑的心情用暴力法寫了一遍,結過果然不出所料超時了 然後我試著想另外的辦法...