91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python遞歸實現鏈表快速倒轉

發布時間:2022-05-05 09:27:45 來源:億速云 閱讀:101 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用python遞歸實現鏈表快速倒轉”,在日常操作中,相信很多人在怎么用python遞歸實現鏈表快速倒轉問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用python遞歸實現鏈表快速倒轉”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

案例:實現如下鏈表進行倒轉

怎么用python遞歸實現鏈表快速倒轉

源代碼:

'''
Node 用于表示隊列中的節點;它包含兩個域。
val 表示節點的值。
next指向下一個節點
'''
#定義鏈表的數據結構
class Node:
    def __init__(self,val):
        self.next = None
        self.val  = val

class ListUtility:#生成一個用來操作的鏈表
    def __init__(self):
        self.head = None
        self.tail = None
        pass
    def createList(self,nodeNum):
        if nodeNum <= 0:
            return None
        head = None
        val = 0
        node = None
        while nodeNum > 0:
    #如果head指針為空,代碼先構造隊列頭部,如果不為空,代碼構造節點對象,然后用上一個節點的next指針指向當前節點,從而將多個節點串聯成隊列。
            if head is None:
                head = Node(val)
                node = head
            else:
                node.next = Node(val)
                node = node.next
                self.tail = node
            val += 1
            nodeNum -= 1
        
        self.head = head
        return head
    
    def printList(self,head):
        
        while head is not None:
            print("{0}->".format(head.val),end = " ")
            head = head.next
        print("null")
                
class ListReverse:
    def __init__(self, head):
        self.listHead = head
        self.newHead = None
    def recursiveReverse(self, node):
        #如果隊列為空或者只有一個節點,那么隊列已經倒轉完成
        if node is None or node.next is None:
            self.newHead = node
            return node
        '''
        如果隊列包含多個節點,那么通過遞歸調用的方式,先把當前節點之后所有節點實現倒轉,
        然后再把當前節點之后節點的next指針指向自己從而完成整個列表所有節點的導致
        '''
        head = self.recursiveReverse(node.next)
        head.next = node
        node.next = None
        return node
    def getReverseList(self):
        '''
        listHead是原隊列頭節點,執行recursiveReverse后newHead指向新列表的頭結點,它
        對應的其實是原列表的尾節點,而head指向新列表的尾節點
        '''
        self.recursiveReverse(self.listHead)
        return self.newHead
 utility = ListUtility()
head = utility.createList(10)
utility.printList(head)
#執行倒轉算法,然后再次打印隊列,前后對比看看導致是否成功
reverse = ListReverse(head)
utility.printList(reverse.getReverseList())

運行結果:

怎么用python遞歸實現鏈表快速倒轉

到此,關于“怎么用python遞歸實現鏈表快速倒轉”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涪陵区| 色达县| 宜章县| 宜黄县| 林州市| 保靖县| 东明县| 法库县| 北宁市| 外汇| 益阳市| 宁乡县| 肥乡县| 麻栗坡县| 富顺县| 汝城县| 方山县| 固安县| 南阳市| 景宁| 浮山县| 诸暨市| 綦江县| 新沂市| 石台县| 曲麻莱县| 富川| 灵寿县| 交城县| 松原市| 赣榆县| 霸州市| 原平市| 永靖县| 九寨沟县| 库尔勒市| 舒兰市| 六枝特区| 广汉市| 来安县| 镇雄县|