class listnode:
def __init__(self, x):
self.val = x
self.next = none
單鏈表是在結點類的基礎上,由乙個乙個結點構成。
鍊錶知道頭結點就能獲取所有的節點。
r指向頭結點,p逐個指向後續節點。
initlist得到每個結點的位址,printlist得到節點的值。
class listnode:
def __init__(self, x):
self.val = x
self.next = none
class linklist:
def __init__(self):
self.head=none
def initlist(self, data):
# 建立頭結點
self.head = listnode(data[0])
r=self.head
p = self.head
# 逐個為 data 內的資料建立結點, 建立鍊錶
for i in data[1:]:
node = listnode(i)
p.next = node
p = p.next
return r
def printlist(self,head):
if head == none: return
node = head
while node != none:
print(node.val,end=' ')
node = node.next
if __name__ == '__main__':
l=linklist()
data1 = [1, 2, 3]
l1=l.initlist(data1)
l.printlist(l1)
題目:輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
class linklist:
def __init__(self):
self.head=none
def initlist(self, data):
# 建立頭結點
self.head = listnode(data[0])
r=self.head
p = self.head
# 逐個為 data 內的資料建立結點, 建立鍊錶
for i in data[1:]:
node = listnode(i)
p.next = node
p = p.next
return r
def printlist(self,head):
if head == none: return
node = head
while node != none:
print(node.val,end=' ')
node = node.next
class listnode:
def __init__(self, x):
self.val = x
self.next = none
class solution:
# 返回listnode
def reverselist(self, phead):
# write code here
head = listnode(-1)
print(head)
while phead is not none:
tmp = head.next
print('--',tmp)
head.next = phead
phead = phead.next
head.next.next = tmp
return head.next
def printlist(self,head):
if head == none: return
node = head
while node != none:
print(node.val,end=' ')
node = node.next
if __name__ == '__main__':
l=linklist()
data1 = [1, 2, 3]
l1=l.initlist(data1)
l.printlist(l1)
s = solution()
res = s.reverselist(l1)
s.printlist(res)
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer真題1 5
第一題 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。分析 因為這是乙個有序的二維陣列,且從左至右遞增,從上至下遞增,經過畫圖就會發現,再這個二維陣列中有兩...
劍指offer刷題 15
面試題29 順時針列印矩陣 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。void printmatrixcloockwisely int numbers,int columns,int rows void printmatrixincircle int numbers,int co...