烯晴可 2023-03-28 20:00 采纳率: 80%
浏览 22
已结题

二叉树根节点类的定义问题

class RootNode:
def init(self, val):
self.val = val
self.left = None # 定义左子节点
self.right = None # 定义右子节点
self.is_root = True
这里括号里不应该加上left和right吗?

  • 写回答

3条回答 默认 最新

  • NoEatMe 2023-03-28 20:17
    关注

    可以不加,不加就只能通过手动赋左右节点,不能在定义的时候直接给了。
    不加的情况:

    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
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日