If 与 If else的区别

2020-03-18  本文已影响0人  unicorn518

缘起

二叉查找树中搜索范围:给定一棵二叉搜索树和一个范围,返回树中在此范围内的数据

样例 :

输入:{20,8,22,4,12},10,22

输出:[12,20,22]

解释:

        20

      /  \

      8  22

    / \

  4  12

它将被序列化为 {20,8,22,4,12}

[12,20,22]介于10和22之间

直接看答案:

public classSolution{

     private ArrayList<Integer> results;

     publicArrayListsearchRange(TreeNode root,intlow,inthigh){

        results = new ArrayList<Integer>();

        helper(root, low, high);

        return results;

    }

    private void helper(TreeNode root,intlow,inthigh){

        if (root == null) {

            return;

        }

        if (root.val > low) {

            helper(root.left, low, high);

        }

        if (root.val >= low && root.val <= high) {

            results.add(root.val);

        }

        if (root.val < high) {

            helper(root.right, low, high);

        }

    }

}

以上代码中的

if() {

}

if (){

}

......

如果改成

if() {

}

else if (){

}

else if() {
}

则不会AC

if 与 else if的区别

if ... if... if...为多选,选项之间不互斥。会逐个判断,如果有符合条件的,则会进入if代码块执行,直到整个方法结束;

if... else if ... else if...为单选,选项之间互斥。只要有一个符合条件,则不会再去判断下面的条件直接结束。

上一篇 下一篇

猜你喜欢

热点阅读