我对以下代码感到困惑,并试图理解它们的含义。
if( (root->left == NULL) || (root->right == NULL) )
{
Node *temp = root->left ? root->left : root->right;
}
这意味着if root->left ==NULL
然后temp = root->left
?else temp = root->right
?
你说的不对,但是你明白了。这是一个条件运算符,它接受三个操作数。
var = condition ? expression1 : expression2
相当于
if( condition )
var = expression1
else
var = expression2
在您的情况下,这意味着
如果root-> left!= NULL,则temp = root-> left,否则temp = root-> right
代替
如果root-> left == NULL,则temp = root-> left,否则temp = root-> right
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句