1:问题描述:在二叉树中寻找值最大的节点并返回
2:思路:用中间结点保存每一次递归时比较的取得最大值的节点。
3:解题代码:
/**
* 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 binary tree
* @return the max node
*/
int min=-100;
TreeNode*temp;
TreeNode* maxNode(TreeNode* root)
{
// Write your code here
if(root==NULL) return NULL;
if(min<root->val) {min=root->val;temp=root;}
maxNode(root->left);
maxNode(root->right);
return temp;
}
};
4:解题感想:
这个题做的时间很长,第一次上机课的时候研究这个题,但是当时自己脑子里就是一片空白,自己想到什么就写什么,两节课下来什么都不对,感觉要怀疑人生。老师又详细的介绍了二叉树之后自己做但还是一直出错,一直Runtime error,一晚上自己都要崩溃了,问了问舍友,自己的思路和他的一样啊啊,但是就是不过,没办法就看着她的代码敲上去了,自己明天还要继续研究自己为什么错了。