2
私の心には同じことをするが、それはないという2つのコードがあります。 私のカスタムセットツリーのイテレータを作成しようとしています。ここにコードがあります。自分のツリーを持つJava再帰イテレータ
public LinkedList<AnyType> traverse (TheNode<AnyType> node,LinkedList<AnyType> theList){
if (node.left != null)
return traverse (node.left,theList);
theList.push(node.element);
if (node.right != null)
return traverse (node.right,theList);
return theList;
}
public void traverseNrTwo (TheNode<AnyType> node){
if (node.left != null){
traverseNrTwo (node.left);
}
list.push(node.element);
if (node.right != null){
traverseNrTwo (node.right);
}
}
traverse
のみ木の左側を通過し、リストに追加されますが、traveseNrTwo
は、ツリー全体を通過します。だから私の質問は、なぜ彼らは2つの異なることをするのだろうか?