-1
问:关于使用递归和返回的二叉搜索树遍历,我有疑问。我必须按照按升序排列键的BST,然后“倒转”它,这样所有键都按降序排列,正如您在图片中看到的那样。使用递归进行二叉搜索树遍历
根据我的下面的代码的了解,我认为步骤是:
->reverseKeys (10) ->reverseKeys (2)
->reverseKeys (null): return
->reversekeys(null): return
->BSTNODE <T> ptr = root.left;
->root.left = root.right;
->root.right = ptr;
我想我误解的代码。有人能够扩展这个代码如何将左边的图片更改为右边?我将不胜感激任何帮助。
25 25
/\ /\
10 40 ---> 40 10
/\ /\ /\/\
2 20 30 45 45 30 20 2
/ \ / \
15 35 35 15
public static <T extends Comparable<T>>
void reverseKeys(BSTNode<T> root) {
if (root == null) {
return;
}
reverseKeys(root.left);
reverseKeys(root.right);
BSTNode<T> ptr = root.left;
root.left = root.right;
root.right = ptr;
}