二叉树的最大节点

来源:互联网 发布:如何应对压力 知乎 编辑:程序博客网 时间:2024/06/05 05:16

描述:在二叉树中寻找值最大的节点并返回。
样例
给出如下一棵二叉树:
这里写图片描述
返回值为 3 的节点。
思路:可以应用递归调用遍历左右子树,如果出现了左(右)子树大于根节点,就将左右节点赋值给根节点。

class Solution {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;    TreeNode *left = root;    TreeNode *right = root;    if(root->left != NULL)        left = maxNode(root->left);    if(root->right != NULL)        right = maxNode(root->right);    if(root->val < right->val)        root->val = right->val;    if(root->val < left->val)        root->val = left->val;    return root;    }};