n******7 发帖数: 99 | 1 rt,还是说用ternary operator会降低可读性,所以尽量少用,换成if else语句。举
个例子,Check a binary tree is a binary search tree.
public boolean isBST(Node root){
return isBST(root,Integer.MIN_VALUE,Integer.MAX_VALUE);
}
public boolean isBST(Node root, int min, int max){
return (root==null)?true:((root.getValue()>=min)&&(root.getValue()<
max)&&isBST(root.left(),min,root.getValue())
&&isBST(root.right(),root.getValue(),max));
}
还是写成
public boolean isBST(Node root, int min, int max){
if(root == null){
return true;
}else{
int value = root.getValue();
boolean flag = false;
if((value>=min)&&(value
return (flag&&isBST(root.left(),min,value)&&isBST(root.right(),
value,max));
}
} | y******u 发帖数: 804 | 2 以coding style来说,最后一部分拖那么一大坨,还是不要三目运算了
短点的没问题。 | z****e 发帖数: 54598 | | p*****2 发帖数: 21240 | 4 (defn isBST
([root]
(isBST root, Integer/MIN_VALUE, Integer/MAX_VALUE))
([root min max]
(if (nil? root) true
(let [val (:val root)]
(and
(>= val min)
(<= val max)
(isBST (:left root) min val)
(isBST (:right root) val max))))) | w*******s 发帖数: 138 | 5 你这个例子当时是不用好了。
很多时候都是见仁见智看情况。
突然想到这是一个黑阿3的好借口,阿3只要用了,就说他代码可读性差,没实际经验,
阿3要是不用,就说他代码不够简洁,不熟悉编程。
【在 n******7 的大作中提到】 : rt,还是说用ternary operator会降低可读性,所以尽量少用,换成if else语句。举 : 个例子,Check a binary tree is a binary search tree. : public boolean isBST(Node root){ : return isBST(root,Integer.MIN_VALUE,Integer.MAX_VALUE); : } : : public boolean isBST(Node root, int min, int max){ : return (root==null)?true:((root.getValue()>=min)&&(root.getValue()< : max)&&isBST(root.left(),min,root.getValue()) : &&isBST(root.right(),root.getValue(),max));
| p*****2 发帖数: 21240 | 6
所以还是取消了好。
【在 w*******s 的大作中提到】 : 你这个例子当时是不用好了。 : 很多时候都是见仁见智看情况。 : 突然想到这是一个黑阿3的好借口,阿3只要用了,就说他代码可读性差,没实际经验, : 阿3要是不用,就说他代码不够简洁,不熟悉编程。
|
|