二叉树的最大节点

来源:互联网 发布:淘宝买手机卡认证过程 编辑:程序博客网 时间:2024/05/29 12:21

问题描述:

在二叉树中寻找值最大的节点并返回。

样例

给出如下一棵二叉树:

     1   /   \ -5     2 / \   /  \0   3 -4  -5 

返回值为 3 的节点。


解题思路:

先定义一个值为极小值的节点,运用递归,将二叉树各个节点的值与之比较,返回大的那一个。

代码实现:

class Solution {
public:
    /**
     * @param root the root of binary tree
     * @return the max node
     */
     TreeNode *temp=new TreeNode(-100000);
    TreeNode* maxNode(TreeNode* root) {
        // Write your code here
      if(root==NULL) return NULL;
       else{
            if(root->val>=temp->val) temp=root;
            maxNode(root->left);
            maxNode(root->right);
            return temp;
       }
    }
};

解题感悟:

新节点在函数体外定义,若定义在函数内部无法返回所有节点中最大的,输出的将时根节点。

0 0