我对以下代码感到困惑,并尝试理解它们的含义.
if( (root->left == NULL) || (root->right == NULL) )
{
Node *temp = root->left ? root->left : root->right;
}
Run Code Online (Sandbox Code Playgroud)
这意味着if root->left ==NULL然后temp = root->left?else temp = root->right?
你不完全正确,但你明白了.这是一个带有三个操作数的条件运算符.
var = condition ? expression1 : expression2
Run Code Online (Sandbox Code Playgroud)
相当于
if( condition )
var = expression1
else
var = expression2
Run Code Online (Sandbox Code Playgroud)
在你的情况下,它意味着
如果root-> left!= NULL则temp = root-> left,否则temp = root-> right
代替
如果root-> left == NULL则temp = root-> left,否则temp = root-> right
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |