import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型
*/
public static int value = 0;
public int findMaxHeight (TreeNode root) {
// write code here
value = root.val;
search(root);
return value;
}
public void search(TreeNode root) {
if (root == null) {
return;
}
if (root.left != null) {
value = Math.max(root.left.val, value);
}
if (root.right != null) {
value = Math.max(root.right.val, value);
}
search(root.left);
search(root.right);
}
}
该题主要考察的是二叉树的遍历算法,二叉树的遍历算法常用的是三种,前序遍历、中序遍历、后序遍历。前序遍历指的是前根遍历,前根遍历是先遍历根节点,然后再遍历左节点,再遍历右节点;中序遍历指的是中根遍历,先遍历左节点,再遍历根节点,最后遍历右节点;后序遍历指的是后根遍历,先遍历左节点,再遍历右节点,最后遍历根节点。我选择的是前序遍历算法,然后进行比较,得出整棵二叉树的最大节点

京公网安备 11010502036488号