树的根(输入)的实际定义是什么
What is actually the definition of the root (the input) of a tree
我是日期结构方面的新手。
在一些Leetcode问题中,给出的输入是root = [1,2,3,4,5,null,6,7,null],root的类型是TreeNode,似乎是一个节点如下
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
但是这里输入的显然是一个“列表”:root = [1,2,3,4,5,null,6,7,null]
当我创建一个递归函数并将根作为输入并且可能 returns 一个整数时,它是否会自动开始处理这棵树中的第一个元素,即使这里的根是一棵“树”元素?在我看来,许多这样的函数调用 root 并将其用作单个变量(或节点)而不是整棵树,这有时让我感到困惑。例如
def afunction(self, root: TreeNode) -> int:
queu = [root]
maxDepth = float('-inf')
result = 0
.....
这里的root好像是一个没有实际值的节点?以及如何将其存储为 queu = [root]?
该列表可能表示一棵树,其中索引 i
处的节点在索引 2*i + 1
和 2*i + 2
处有两个子节点。然后,您给定的列表代表树
1
(i=0)
/ \
2 3
(i=1) (i=2)
/ \ \
4 5 6
(i=3) (i=4) (i=6)
/
7
(i=7)
根据这种解释,根和以根节点为根的树之间几乎没有区别。但是请注意,子树不是树的单个切片,并且在单个根节点下连接两棵树并不对应于简单的列表连接。
我是日期结构方面的新手。
在一些Leetcode问题中,给出的输入是root = [1,2,3,4,5,null,6,7,null],root的类型是TreeNode,似乎是一个节点如下
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
但是这里输入的显然是一个“列表”:root = [1,2,3,4,5,null,6,7,null]
当我创建一个递归函数并将根作为输入并且可能 returns 一个整数时,它是否会自动开始处理这棵树中的第一个元素,即使这里的根是一棵“树”元素?在我看来,许多这样的函数调用 root 并将其用作单个变量(或节点)而不是整棵树,这有时让我感到困惑。例如
def afunction(self, root: TreeNode) -> int:
queu = [root]
maxDepth = float('-inf')
result = 0
.....
这里的root好像是一个没有实际值的节点?以及如何将其存储为 queu = [root]?
该列表可能表示一棵树,其中索引 i
处的节点在索引 2*i + 1
和 2*i + 2
处有两个子节点。然后,您给定的列表代表树
1
(i=0)
/ \
2 3
(i=1) (i=2)
/ \ \
4 5 6
(i=3) (i=4) (i=6)
/
7
(i=7)
根据这种解释,根和以根节点为根的树之间几乎没有区别。但是请注意,子树不是树的单个切片,并且在单个根节点下连接两棵树并不对应于简单的列表连接。