色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 鏈表的長度

阮建安2年前9瀏覽0評論

Python是一種具有高級程序功能的動態(tài)語言。Python語言廣泛應(yīng)用于網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析、人工智能等領(lǐng)域。在Python語言中,鏈表是一種基本的數(shù)據(jù)結(jié)構(gòu)。鏈表在Python語言中,具有一些重要的屬性,其中包括鏈表的長度。

class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
self.tail = new_node
else:
self.tail.next = new_node
self.tail = new_node
def get_length(self):
current_node = self.head
count = 0
while current_node is not None:
count += 1
current_node = current_node.next
return count
linkedList = LinkedList()
linkedList.add_node(1)
linkedList.add_node(2)
linkedList.add_node(3)
print("鏈表的長度為:", linkedList.get_length())

上面的代碼是鏈表的類定義,其中包括節(jié)點的定義以及鏈表的長度方法??梢钥吹剑湵淼膅et_length()方法采用了迭代的方式獲取鏈表中的節(jié)點個數(shù),其時間復(fù)雜度為O(n)。

對于鏈表的長度,采用迭代的方式得出鏈表的長度非常簡單,只需要遍歷鏈表中的所有節(jié)點,累計節(jié)點個數(shù)即可。另外,還可以采用遞歸的方式獲取鏈表的長度,代碼如下所示:

def get_length_recursion(node):
if node is None:
return 0
else:
return 1 + get_length_recursion(node.next)
linkedList = LinkedList()
linkedList.add_node(1)
linkedList.add_node(2)
linkedList.add_node(3)
print("鏈表的長度為:", get_length_recursion(linkedList.head))

上述代碼通過遞歸的方式獲取鏈表的長度,具有鏈表長度方法的遞歸解法具有遞歸的特點。遞歸的本質(zhì)是一個函數(shù)不斷調(diào)用自己,直到滿足某個終止條件。在鏈表長度的遞歸解法中,只需要判斷當(dāng)前節(jié)點是否為空,若為空則返回0;否則將1與下一個節(jié)點的長度累加即可。

綜上所述,鏈表在Python語言中是一種非常常用的數(shù)據(jù)結(jié)構(gòu)。獲得鏈表的長度,可以采取迭代或遞歸的方式,其中迭代的方式相對簡單,但是遞歸的方式也可以有效地解決鏈表的長度問題。