在二叉树中寻找值最大的节点并返回。
样例
给出如下一棵二叉树:
1
/ \
-5 2
/ \ / \
0 3 -4 -5
Java 代码
import LintClass.TreeNode;
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class MaxNode_632 {
TreeNode max = new TreeNode(Integer.MIN_VALUE);
/*
* @param root: the root of tree
* @return: the max node
*/
public TreeNode maxNode(TreeNode root) {
// write your code here
if(root == null ) {
return root;
}
max = max.val > root.val ? max: root;
maxNode(root.left);
maxNode(root.right);
return max;
}
public static void main(String[] arg) {
TreeNode tree = new TreeNode(1);
TreeNode tree_1_left = new TreeNode(-5);
TreeNode tree_1_right = new TreeNode(2);
TreeNode tree_2_left_left = new TreeNode(0);
TreeNode tree_2_left_right = new TreeNode(3);
TreeNode tree_2_right_left = new TreeNode(-4);
TreeNode tree_2_right_right = new TreeNode(-5);
tree.left = tree_1_left;
tree.right = tree_1_right;
tree.left.left = tree_2_left_left;
tree.left.right = tree_2_left_right;
tree.right.left = tree_2_right_left;
tree.right.right = tree_2_right_right;
MaxNode_632 obj = new MaxNode_632();
System.out.print(obj.maxNode(tree).val);
}
}
网友评论