0 java binary-tree if-statement ternary-operator
可能重复:
什么是Java?:运算符被调用,它做了什么?
我试图阅读二叉树的实现,我遇到了这一行代码:
if (...) {
...
} else {
node = ( node.left != null ) ? node.left : node.right; //this line
}
return node;
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这条线的含义是什么?我最好的猜测是,这是某种条件陈述.
它被称为Conditional Operator.
在expression1 ? expression2: expression3,expression1返回一个boolean值.如果是,true那么expression2评估,否则expression3评估.
所以在你的代码片段中: -
node = ( node.left != null ) ? node.left : node.right;
Run Code Online (Sandbox Code Playgroud)
相当于: -
if (node.left != null) {
node = node.left;
} else {
node = node.right;
}
Run Code Online (Sandbox Code Playgroud)