二叉树的最大节点

来源:互联网 发布:外汇mt4软件下载 编辑:程序博客网 时间:2024/06/07 15:25

问题描述:在二叉树中寻找值最大的节点并返回。

样例

给出如下一棵二叉树:

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

返回值为 3 的节点。

解题思路:通过前序遍历的方式进行查找和比较,通过递归,将前序遍历用来保存的语句改成比较。

实验代码:

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

个人感想:问题要求返回的是一个节点,而不是树中最大的那个值。定义的节点的值应该尽可能小。

0 0
原创粉丝点击