在單鏈表中刪除倒數第K個節點 Python 版
阿新 • • 發佈:2019-02-03
題目:
給定一個連結串列,刪除其中倒數第k個結點。
程式碼:
class LinkedListAlgorithms(object):
def __init__(self):
pass
def rm_last_kth_node(self, k, linked_list): # 刪除倒數第 K 個節點,針對單鏈表的
if linked_list.is_empty():
print 'The given linked_list is empty.'
if k < 1 or k > linked_list.get_length():
print 'Wrong kth number out of index.'
k = linked_list.get_length() - k
if k == 0:
p = linked_list.head
linked_list.head = p.next
else:
p = linked_list.head
for i in xrange(k-1):
p = p.next
p.next = p.next.next
分析:
在這個函式中,我又一次寫了從單鏈表中刪除一個結點的程式碼,事實上不需要,因為我在實現單鏈表類的時候已經寫過了刪除一個結點的方法了。Python版本單鏈表實現程式碼時間複雜度就是一遍迴圈連結串列,空間複雜度用到了一個指標。
如果是雙鏈表的話,複雜度並沒降低,畢竟仍然要一遍迴圈。