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中的指针一定要在函数外定义!!!
