class RootNode:
def init(self, val):
self.val = val
self.left = None # 定义左子节点
self.right = None # 定义右子节点
self.is_root = True
这里括号里不应该加上left和right吗?
可以不加,不加就只能通过手动赋左右节点,不能在定义的时候直接给了。
不加的情况:
class RootNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
root = RootNode(0)
left = RootNode(1)
right = RootNode(2)
root.left, root.right = left, right
print(root.left.val, root.right.val) # 1 2
加的情况:
class RootNode:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
root = RootNode(0, RootNode(1), RootNode(2))
print(root.left.val, root.right.val) # 1 2
这是初始化,左右还没有呢