真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python無序鏈表刪除重復(fù)項的方法-創(chuàng)新互聯(lián)

題目描述:

創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為克拉瑪依等服務(wù)建站,克拉瑪依等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為克拉瑪依企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

給定一個沒有排序的鏈表,去掉重復(fù)項,并保留原順序 如: 1->3->1->5->5->7,去掉重復(fù)項后變?yōu)椋?->3->5->7

方法:

  1. 順序刪除
  2. 遞歸刪除

1.順序刪除

由于這種方法采用雙重循環(huán)對鏈表進(jìn)行遍歷,因此,時間復(fù)雜度為O(n**2)
在遍歷鏈表的過程中,使用了常數(shù)個額外的指針變量來保存當(dāng)前遍歷的結(jié)點(diǎn),前驅(qū)結(jié)點(diǎn)和被刪除的結(jié)點(diǎn),所以空間復(fù)雜度為O(1)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time  : 2020/1/15 20:55
# @Author : buu
# @Software: PyCharm
# @Blog  :https://blog.csdn.net/weixin_44321080
class LNode:
  def __init__(self, x):
    self.data = x
    self.next = None

def removeDup(head):
  """
  對帶頭結(jié)點(diǎn)的無序單鏈表刪除重復(fù)的結(jié)點(diǎn)
  順序刪除:通過雙重循環(huán)直接在鏈表上進(jìn)行刪除操作
  即,外層循環(huán)用一個指針從第一個結(jié)點(diǎn)開始遍歷整個鏈表,內(nèi)層循環(huán)從外層指針指向的下一個結(jié)點(diǎn)開始,
  遍歷其余結(jié)點(diǎn),將與外層循環(huán)遍歷到的的指針?biāo)傅慕Y(jié)點(diǎn)的數(shù)據(jù)域相同的結(jié)點(diǎn)刪除
  :param head: 頭指針
  :return:
  """
  if head is None or head.next is None:
    return
  outerCur = head.next
  innerCur = None
  innerPre = None
  while outerCur is not None:
    innerCur = outerCur.next
    innerPre = outerCur
    while innerCur is not None:
      if outerCur.data == innerCur.data:
        innerPre.next = innerCur.next
        innerCur = innerCur.next
      else:
        innerPre = innerCur
        innerCur = innerCur.next
    outerCur = outerCur.next

if __name__ == '__main__':
  i = 1
  head = LNode(6)
  tmp = None
  cur = head
  while i < 7:
    if i % 2 == 0:
      tmp = LNode(i + 1)
    elif i % 3 == 0:
      tmp = LNode(i - 2)
    else:
      tmp = LNode(i)
    cur.next = tmp
    cur = tmp
    i += 1
  print("before removeDup:")
  cur = head.next
  while cur is not None:
    print(cur.data, end=' ')
    cur = cur.next
  removeDup(head)
  print("\nafter removeDup:")
  cur = head.next
  while cur is not None:
    print(cur.data, end=' ')
    cur = cur.next

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享文章:python無序鏈表刪除重復(fù)項的方法-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/hjiss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部