在二叉树中寻找值最大的节点并返回。
样例
样例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
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/*
* @param root: the root of tree
* @return: the max node
*/
TreeNode * maxNode(TreeNode * root) {
// write your code here
if(root==NULL) return root;
int max=root->val;
TreeNode*res=root;
recursion(root,max,res);
return res;
}
void recursion (TreeNode * root,int &max,TreeNode *& m)
{
if(root!=NULL)
{
if(max<root->val)
{
max=root->val;
m=root;
}
recursion(root->left,max,m);
recursion(root->right,max,m);
}
}
};