使用递归计算嵌套列表中具有奇数长度或甚至长度的列表数

时间:2018-01-19 12:05:25

标签: java algorithm list recursion nested

如何在Java中编写一个递归方法,该方法接受嵌套列表并计算奇数长度的列表数和偶数长度的列表数?到目前为止我只得到了这个:

public class MyRekursion {
    // [number of odd-lengthed lists, number of even-lengthed lists]
    public static int[] countOddEven(List<Object> nestedList) {
        int odd = 0;
        int even = 0;
        for (Object obj : nestedList){
            if (obj instanceof List){
                // ???
            }
        }

        return new int[] { odd, even };
    }
}

2 个答案:

答案 0 :(得分:3)

public class MyRecursion {
    public static int[] countOddEven(List nestedList) {
        int odd = 0;
        int even = 0;

        for (Object obj : nestedList) {
            if (obj instanceof List) {
                int[] res = countOddEven((List)obj);
                odd += res[0];
                even += res[1];
            }
        }

        if (nestedList.size() % 2 == 1) {
            ++odd;
        } else {
            ++even;
        }

        return new int[] { odd, even };
    }
}   

答案 1 :(得分:0)

这应该取代你的/ ??因为当你用2(模数)时,%2给出了剩余值。所以,如果这等于0,那就是偶数,否则它是不均匀的

if ((obj.size() % 2) == 0 {
     even++;
     }else{
      odd++;
 }
}