-1
BST의 모든 노드를 방문하여 가장 큰 int 값을 찾기위한 알고리즘을 찾으려고하면 BST는 불균형이고 사전 순으로 정렬되지만 int 값이 있습니다. 트리에서 가장 큰 int 값을 찾아야합니다.BST를 모두 검색하는 재귀 알고리즘이 필요합니다.
내 코드는 다음과 같습니다
private Object Mode(BinaryTreeNode root) {
if (root == null) {
return null;
}
Object left = root.getElement();
Object right = root.getElement();
if (root.getLeftChild() != null) {
Object leftEle = root.getLeftChild().getElement();
if (left.data < leftEle.data) {
left = Mode(root.getLeftChild());
}
}
if (root.getRightChild() != null) {
Object rightEle = root.getRightChild().getElement();
if (right.data < rightEle.data) {
right = Mode(root.getRightChild());
}
}
if(left.data > right.data){
return left;
}
return right;`
}
은 내가 메서드 호출이 다시 스택에서 팝 때 비교가 일어날 알고 있지만 실제로 모든 노드로
설명에 일부 (형식화 된) 코드를 넣을 수 있다면 여기에있는 사람들이 구문 문제를 해결하는 데 더 도움이 될 것입니다. 귀하의 의사 코드는 꽤 정확하고 재귀를 올바르게 사용합니다. –
@MileHigh 당신은 이것을 정교하게 부탁 할 수 있습니다. '내 BST는 불균형이고 알파벳 순으로 정렬되었지만 int 값이 있습니다.' 정수 값과 문자 사이의 정렬 순서는 무엇입니까? – radbrawler