我是学习二叉树概念的新手。 我遇到以下问题:
int lDepth = maxDepth(node->left);
int rDepth = maxDepth(node->right);
在这段代码中,什么是
“ maxDepth(node-> left);”
'LDepth'变量中存储的内容与下一行相同, 每次递归调用后-'lDepth'变量中存储了什么?
我想要一个具体的答案。
答案 0 :(得分:0)
根据您提供的代码,我会说lDepth
正在存储left subtree
的深度,而rDepth
是存储right subtree
的深度,其中{{1 }}是树的根。递归地适用于所有子树。
“ maxDepth(node-> left);
您正在递归调用node
函数以计算根为maxDepth
的左子树的深度。
答案 1 :(得分:0)
maxDepth()
是一个递归函数,它被递归调用,直到遇到NULL pointer
表示树的结尾。 maxDepth(node->left)
是对maxDepth
函数的递归调用,其中子树的根源为node->left
。参见下图
node
/ \
l_node r_node
/ \ /\
left 1 3 right
(lDepth) (rDepth)
l_node=node->left
,因此调用了maxDepth(l_node)
。同样,r_node=node->right
因此将调用maxDepth(r_node)
。
希望这对您有所帮助。