0
다음은 'CopyTree'클래스의 함수입니다. TreeNode라는 내부 중첩 클래스를 숨 깁니다. 또한 TreeNode 루트는 개인 변수입니다. 내가 주석 처리 한 선에 대한 청결한 구현/대안이 있습니까? 감사.개인 변수를 사용하여 개체를 만드는 클리너 솔루션?
public class CopyTree {
private TreeNode root;
private static class TreeNode {
TreeNode left;
TreeNode right;
Integer element;
TreeNode(TreeNode left, TreeNode right, Integer element) {
this.left = left;
this.right = right;
this.element = element;
}
}
public CopyTree copyTree() {
CopyTree ct = new CopyTree();
ct.root = copyTree(root); // <---- QUESTION: Any cleaner solution ??
return ct;
}
private TreeNode copyTree(TreeNode binaryTree) {
TreeNode copy = null;
if (binaryTree != null) {
copy = new TreeNode(null, null, binaryTree.element);
copy.left = copyTree(binaryTree.left);
copy.right = copyTree(binaryTree.right);
}
return copy;
}
을 사용하는 것입니다 (당신은 간단한 방법으로 재귀를 피할 수는 없지만)? –
'root'는 null입니다. 당신의'copyTree (TreeNode ..)'는'null'을 리턴 할 것입니다. – nachokk