【LintCode-632】二叉树的最大节点(Java实现)
来源:互联网 发布:mysql高效编程 编辑:程序博客网 时间:2024/06/06 03:02
第一次代码:
public TreeNode maxNode(TreeNode root) { if (root == null) { return null; } else if (root.left != null && root.right != null) { TreeNode leftNode = maxNode(root.left); TreeNode rightNode = maxNode(root.right); if (leftNode.val >= rightNode.val && leftNode.val >= root.val) { return leftNode; } else if (rightNode.val > leftNode.val && rightNode.val > root.val) { return rightNode; } else { return root; } } else if (root.left == null && root.right != null) { TreeNode rightNode = maxNode(root.right); if (rightNode.val >= root.val) { return rightNode; } else { return root; } } else if (root.right == null && root.left != null) { TreeNode leftNode = maxNode(root.left); if (leftNode.val >= root.val) { return leftNode; } else { return root; } } return root; }
第二次代码记录:
public TreeNode maxNode(TreeNode root) { if (root == null) return null; TreeNode leftMaxNode = root.left != null ? maxNode(root.left) : null; TreeNode rightMaxNode = root.right != null ? maxNode(root.right) : null; if (leftMaxNode != null && rightMaxNode != null) { TreeNode tempNode = leftMaxNode.val > rightMaxNode.val ? leftMaxNode : rightMaxNode; return tempNode.val > root.val ? tempNode : root; } else if (leftMaxNode != null) { return leftMaxNode.val > root.val ? leftMaxNode : root; } else if (rightMaxNode != null) { return rightMaxNode.val > root.val ? rightMaxNode : root; } return root; }
个人解题思路-递归算法:
1. 求出左子树的最大节点的val值 //leftMaxNode.val
2. 当前二叉树节点的val值 //root.val
3. 求出右子树的最大节点的val值 //rightMaxNode.val
4. 返回最大val值节点
如果您有更好的解法,欢迎您在留言区补充,感谢!!
阅读全文
0 0
- 【LintCode-632】二叉树的最大节点(Java实现)
- lintcode(632)二叉树的最大节点
- LintCode:二叉树的最大节点632
- LintCode-(632)二叉树的最大节点
- LintCode 二叉树的最大节点
- LintCode-二叉树的最大节点
- lintcode 二叉树的最大节点
- 二叉树的最大节点-LintCode
- [Lintcode]二叉树的最大节点
- lintcode--二叉树的最大节点
- LintCode二叉树的最大节点
- LintCode 二叉树的最大节点
- 二叉树的最大节点-LintCode
- LintCode 二叉树的最大节点
- Lintcode:二叉树的最大节点
- LintCode之632 二叉树最大节点
- (lintcode)第632题二叉树的最大节点
- LintCode 第632题 二叉树的最大节点
- Gojs 去掉水印
- Java代码编写规范
- python中 if __name__ =='__main__'的作用
- 负k进制
- [APIO2009]抢掠计划(tarjan+spfa)
- 【LintCode-632】二叉树的最大节点(Java实现)
- linux shell基础知识
- 猜糖果
- java-day15api的概述: 就是java替我们写好的一些类,他封装了一些功能,我们仅仅只需要知道如何使用即可
- [BZOJ]3679: 数字之积 数位DP
- 51nod 1769 Clarke and math2 线性筛+数学
- C
- 线程
- PEP8 Python 编码规范