描述
在二叉树中寻找值最大的节点并返回。
描述
中文
English
在二叉树中寻找值最大的节点并返回。
样例
样例 1:
输入:
1
/
-5 3
/ \ /
1 2 -4 -5
输出: 值为3的节点
样例 2:
输入:
10
/
-5 2
/ \ /
0 3 -4 -5
输出: 值为10的节点
public class Solution {
/*
* @param root: the root of tree
* @return: the max node
*/
public TreeNode maxNode(TreeNode root) {
TreeNode maxNode = root;
if(root != null) {
maxNode = getMaxNode(root,maxNode);
}
return maxNode;
}
public TreeNode getMaxNode(TreeNode root,TreeNode maxNode) {
TreeNode leftNode = null;
TreeNode rightNode = null;
if(root.left != null) {
leftNode = root.left;
if(leftNode.val > maxNode.val) {
maxNode = leftNode;
}
maxNode = getMaxNode(leftNode,maxNode);
}
if(root.right != null) {
rightNode = root.right;
if(rightNode.val > maxNode.val) {
maxNode = rightNode;
}
maxNode = getMaxNode(rightNode,maxNode); // 形参的改变不影响实参的值!!所以要再赋值一遍
}
return maxNode;
}
}
形参的改变不影响实参的值!!!!
形参的改变不影响实参的值!!!!
形参的改变不影响实参的值!!!!
本文介绍了一种在二叉树中寻找值最大的节点的方法,并通过递归算法实现。样例展示了输入不同二叉树结构时,如何找到并返回值最大的节点。
332

被折叠的 条评论
为什么被折叠?



