632. 二叉树的最大节点
在二叉树中寻找值最大的节点并返回。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出如下一棵二叉树:
1
/ \
-5 2
/ \ / \
0 3 -4 -5
返回值为
3
的节点。
相关题目
思路:分别取两个节点为树节点,也就是root节点分别赋给left和right,就这样一直递归下去,求出分别的最大节点,然后再比较一次,最后得出最大节点。
AC代码:
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 root;
TreeNode *right=maxNode(root->right);
TreeNode *left=maxNode(root->left);
return max(root,max(left,right));
}
TreeNode * max(TreeNode* a, TreeNode* b) {
if(a==NULL){
return b;
}
if(b==NULL){
return a;
}
if(a->val>b->val){
return a;
}
else {
return b;
}
}
};
网友评论