1.问题描述:在二叉树中寻找节点最大的值并返回。
2.思路:正如样例
给出如下一棵二叉树:
1
/ \
-5 2
/ \ / \
0 3 -4 -5
返回值为 3
的节点。
在函数外定义一个很小的数和树中的一个指针(一定要在函数外定义!不然就始终是与这个数进行比较啦),然后再在树中遍历,并将节点值与x(不断更新)进行比较,找出节点最大的值,最终返回当初第内衣的指针,即可以返回节点值最大的节点。
3.代码:
class Solution {
public:
/**
* @param root the root of binary tree
* @return the max node
*/
int x=-100000;
TreeNode *t;
TreeNode* maxNode(TreeNode* root) {
// Write your code here
if(root==NULL) return NULL;
else{
if(x<root->val)
{ x=root->val;
t=root;
}
maxNode(root->left);
maxNode(root->right);
}
return t;
}
};
4.感想:因为函数时TreeNode类型所以一定要有返回值!还有就是x还有TreeNode中的指针一定要在函数外定义!!!