二叉树的最大节点-LintCode
2017-04-11 11:32
281 查看
描述:
在二叉树中寻找值最大的节点并返回。
样例:
给出如下一棵二叉树:
返回值为
思路:
1.我们建立一个节点r,用来存储遍历到当前位置时的最大节点值的节点。
2.用前序遍历遍历所有节点。判断当前节点值是否大于r的节点值,如果是,将当前节点值赋值给r,如果不是,进行下一个遍历。
这里使用的是递归,停止条件为当前节点为空。
AC代码:
class Solution {
public:
/**
* @param root the root of binary tree
* @return the max node
*/
TreeNode *r;
void SearchMax(TreeNode *root)
{
if(root==NULL)
return;
else
{
if(root->val > r->val)
r=root;
SearchMax(root->left);
SearchMax(root->right);
}
}
TreeNode* maxNode(TreeNode* root) {
// Write your code here
if(root==NULL)
return NULL;
else
{
r=root;
SearchMax(root);
return r;
}
}
};
在二叉树中寻找值最大的节点并返回。
样例:
给出如下一棵二叉树:
1 / \ -5 2 / \ / \ 0 3 -4 -5
返回值为
3的节点。
思路:
1.我们建立一个节点r,用来存储遍历到当前位置时的最大节点值的节点。
2.用前序遍历遍历所有节点。判断当前节点值是否大于r的节点值,如果是,将当前节点值赋值给r,如果不是,进行下一个遍历。
这里使用的是递归,停止条件为当前节点为空。
AC代码:
class Solution {
public:
/**
* @param root the root of binary tree
* @return the max node
*/
TreeNode *r;
void SearchMax(TreeNode *root)
{
if(root==NULL)
return;
else
{
if(root->val > r->val)
r=root;
SearchMax(root->left);
SearchMax(root->right);
}
}
TreeNode* maxNode(TreeNode* root) {
// Write your code here
if(root==NULL)
return NULL;
else
{
r=root;
SearchMax(root);
return r;
}
}
};
相关文章推荐
- LintCode-二叉树的最大节点
- LintCode 二叉树的最大节点
- 二叉树的最大节点-LintCode
- LintCode-(632)二叉树的最大节点
- LintCode入门练习——632. 二叉树的最大节点
- LintCode 二叉树的最大节点
- 【入门】lintcode 632: 二叉树的最大节点
- LintCode 二叉树的最大节点
- LintCode入门练习——632. 二叉树的最大节点
- Lintcode 入门-632. 二叉树的最大节点
- [Lintcode]二叉树的最大节点
- lintcode 632. 二叉树的最大节点
- LintCode 第632题 二叉树的最大节点
- 一、lintcode刷题记录--矩阵面积、二叉树的最大节点、整数排序、删除链表中的元素
- 【LintCode 入门】632. 二叉树的最大节点
- 二叉树最大节点-lintCode
- (lintcode)第632题二叉树的最大节点
- 【LintCode-632】二叉树的最大节点(Java实现)
- 微软100题第11题(求二叉树中节点的最大距离)
- 编程之美--求二叉树中节点的最大距离