私はリストのリスト構造とというツリーの再帰関数treeを持っています。次のコードでは、決してcurrent == null
ステートメントに達しないため、永遠に実行されます。LinkedListと再帰ループ問題のリンクされたリスト
null
を使用できない場合、解決策は何ですか?
private void tree(LinkedList<LinkedList<String>> partitions, LinkedList<String> part)
{
LinkedList<String> current = findBiggerPartitionContained(partitions, part);
if (current == null) {
return;
}
tree(partitions, current);
}
private LinkedList<String> findBiggerPartitionContained(LinkedList<LinkedList<String>> partitions, LinkedList<String> part)
{
LinkedList<String> max = new LinkedList<>();
boolean flag = false;
for (LinkedList<String> item : partitions) {
if (item.size() > max.size() && part.containsAll(max)) {
max = item;
flag = true;
}
}
if (!flag)
return null;
flag = false;
return max;
}
あなたのコードで判断すると、 'current == null'ではなく' current.isEmpty() 'でなければなりません。 – Zircon
私はちょうどisEmptyで試しましたが、何も変わりませんでした。 – user840718
デバッガの細かいケース –