/**
* 递归实现:查找二叉树节点中的最大值
* 找出根节点,左子树,右子树节点的最大值,分别比较
* @param root
*/
public int FindMax(TreeNode root) {
int maxNumber=Integer.MIN_VALUE;
int root_val,left_val,right_val; //根节点,左子树,右子树节点的最大值
if (root != null) {
root_val = root.getData(); //根节点最值
left_val = FindMax(root.getLeftNode());//左子树节点最值
right_val = FindMax(root.getRightNode()); //右子树节点最值
if (left_val > right_val) {
maxNumber = left_val;
} else {
maxNumber = right_val;
}
if (root_val > maxNumber) {
maxNumber = root_val;
}
}
return maxNumber;
}
/**
* 非递归,层次遍历实现
* @param root
* @return
*/
public int FindMaxUserLevelOrder(TreeNode root) {
int max = Integer.MIN_VALUE;
二叉树查找最大元素算法
最新推荐文章于 2024-09-12 23:49:00 发布
本文探讨了如何在二叉树结构中高效地寻找最大元素。通过遍历二叉树的节点,我们可以利用二叉树的特性,在不进行完整遍历的情况下找到最大值。关键在于从右子节点开始,直到遇到左子节点或空节点,从而减少比较次数。这种方法适用于已排序的二叉搜索树,对于未排序的二叉树,可能需要先进行遍历转换。
摘要由CSDN通过智能技术生成