【发布时间】:2022-01-07 08:44:21
【问题描述】:
class Node():
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def search1(root, value):
if root is None or root.val == value:
return root
if root.val > value:
return search1(root.left, value)
if root.val < value:
return search1(root.right, value)
def search2(root, value):
while root != None and root.val != value:
if root.val > value:
root = root.left
elif root.val < value:
root = root.right
return root
if __name__ == '__main__':
a = Node(15)
b = Node(6)
c = Node(18)
d = Node(4)
e = Node(8)
f = Node(17)
g = Node(20)
h = Node(13)
i = Node(9)
a.left = b
a.right = c
b.left = d
b.right = e
c.left = f
c.right = g
e.right = h
h.left = i
print(search1(a, 13))
print(search2(a, 13))
输出:<__main__.Node object at 0x000001EF886AB2E0>
如何将这个 Node() 的地址转换为 Node() 的名称?
【问题讨论】:
-
“节点名称”是什么意思?您打印了一个
Node对象,这是继承自object.__repr__的对象的默认字符串表示形式 -
你的节点甚至没有名字。有val,left和right,但没有名字。
标签: python