刷題記錄8 2 鍊錶反轉

2021-10-08 19:08:10 字數 1310 閱讀 2394

反轉乙個單鏈表。

示例:輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

之前應該做過,所以思路大體是清楚的:鍊錶要進行反轉,那麼當前節點的下乙個節點就要指向前乙個節點,因此我們至少需要兩個指標:last表示當前節點的前乙個節點,cur表示當前節點;而cur.next的值指向last時,cur的下乙個節點與cur的聯絡就斷了,因此我們還需要乙個臨時節點tem存放cur的下乙個節點。

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

reverselist

(self, head: listnode)

-> listnode:

last =

none

cur = head

tem = head

while tem !=

none

: tem = cur.

next

# 臨時節點

cur.

next

= last

last = cur

cur = tem

return last

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

reverselist

(self, head)

:"""

:type head: listnode

:rtype: listnode

"""p, rev = head,

none

while p:

rev, rev.

next

, p = p, rev, p.

next

return rev

完全不需要tem臨時節點!!巧妙地利用了python多元賦值。多元賦值的時候,右邊的值不會隨著賦值而改變。妙啊~

劍指offer 刷題記錄 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。思路 我們要正確反轉乙個鍊錶,就需要調整鍊錶指標的方向。如圖所示,要調整h,i,j之間的指標方向,現在假設h以前的都已經調整好了。那麼下一步,我們就要把i指向h,那麼這樣就會導致i到j之間的指標斷裂,不能遍歷到j。因此在調整結點i的指標之前,我們除了要知道...

Leetcode刷題記錄 反轉整數

方法有參考其他部落格 方法一 使用python中的字串 倒序 def reverse x if x 0 return 0 str x str x x if str x 0 x x str x 1 lstrip 0 rstrip 1表示倒序 x int x if 2 31 31 1 return x ...

OI刷題記錄

2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...