補充 python實現二叉樹裡面求葉子節點的演算法

2021-09-25 23:09:12 字數 808 閱讀 5900

一棵樹當中沒有子結點(即度為0)的結點稱為葉子結點,簡稱「葉子」。 葉子是指度為0的結點,又稱為終端結點。

這個二叉樹有五個葉子節點,分別為7,8,9,5,6.

def leaf(self,root):

if root==none:

return 0 #當二叉樹為空時直接返回0

elif root.left==none and root.right==none:

return 1 ##當二叉樹只有乙個根,但是無左右孩子時,根節點就是乙個葉子節點

else:

return (self.leaf(root.left)+self.leaf(root.right)) #其他情況就需要根據遞迴來實現

tree=tree()

tree.add(1)

tree.add(2)

tree.add(3)

tree.add(4)

tree.add(5)

tree.add(6)

tree.add(7)

tree.add(8)

tree.add(9)

print(" ")

print("葉子節點的個數為:")

num=tree.leaf(tree.root)

print(num)

這裡的add方法在上面一起有實現,這篇文章中就直接呼叫了這個add方

二叉樹(補充)

1.二叉樹的下乙個節點 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷 左,根,右 順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。2 當前節點的右子樹不存在且當前節點是其父節點的左子節點,則其父節點就是下一節點。3 當前節點的右子樹不存在且當前節點是其父節點...

python實現二叉樹

初學python,需要實現乙個決策樹,首先實踐一下利用python實現乙個二叉樹資料結構。建樹的時候做了處理,保證建立的二叉樹是平衡二叉樹。coding utf 8 from collections import deque class node def init self,val,left non...

python 二叉樹查詢 Python二叉樹搜尋

stack depth is initialised to 0 def find in tree node,find condition,stack depth assert stack depth max stack depth deeper than max depth stack depth ...