在二叉树中寻找值最大的节点并返回。
样例
样例1:
输入:
{1,-5,3,1,2,-4,-5}
输出: 3
说明:
这棵树如下所示:
1
/ \
-5 3
/ \ / \
1 2 -4 -5
样例 2
输入:
{10,-5,2,0,3,-4,-5}
输出: 10
说明:
这棵树如下所示:
10
/ \
-5 2
/ \ / \
0 3 -4 -5
java语言
/**
* 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 Solution {
/*
* @param root: the root of tree
* @return: the max node
*/
public TreeNode maxNode(TreeNode root) {
// write your code here
if(root == null){
return null;
}
TreeNode left = root;
TreeNode right = root;
if(root.left !=null){
left=maxNode(root.left);
}
if(root.right !=null){
right =maxNode(root.right);
}
if(left.val > root.val){
root.val = left.val;
}
if(right.val > root.val){
root.val = right.val;
}
return root;
}
}
分析:不使用数据结构的方法。