您的位置:首页 > 其它

【入门】lintcode 632: 二叉树的最大节点

2018-01-15 11:21 204 查看
在二叉树中寻找值最大的节点并返回。

样例

给出如下一棵二叉树:
1
/   \
-5     2
/ \   /  \
0   3 -4  -5

返回值为 
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 tree
* @return: the max node
*/
TreeNode * maxNode(TreeNode * root)
{
// write your code here
if(root == NULL) return NULL;
TreeNode * max = root;
if(root->left != NULL)
{
TreeNode * left1 = maxNode(root->left);
max = max->val > left1->val ? max : left1;
}
if(root->right != NULL)
{
TreeNode * right1 = maxNode(root->right);
max = max->val > right1->val ? max : right1;
}
return max;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: