康老师

二叉树的最大节点公式

2016-02-05 分类:百科

TIPS:本文共有 777 个字,阅读大概需要 2 分钟。

在二叉树中寻找值最大的节点并返回。

给出如下一棵二叉树:

1

/ -5 2

/ / 0 3 -4 -5

返回值为 3 的节点。

看到这道题第一个反应就是对于二叉树来说最常用的方式就是递归,所以本题也不例外。

思路就是递归左子树,取得左面的最大值,在递归柚子树,取得右边的最大值,然后root,left,right三个节点做比较

Java:

/**

* Definition of TreeNode:

* public class TreeNode {

* public int val

* public TreeNode left, right

* public TreeNode(int val) {

* this.val = val

* this.left = this.right = null

* }

* }

*/

public class Solution {

/*

* @param root: the root of tree

* @return: the max node

*/

public TreeNode maxNode(TreeNode root) {

if(root == null)//首先判断root节点是否为空,空就直接返回

return null

TreeNode left = root,right = root//将root值付给left和right,因为三点的val做比较,防止出现left或right在val比较时出现null异常(卡在这里很久)

if(root.left != null)

left = maxNode(root.left)//递归获取左子树最大node

if(root.right != null)

right = maxNode(root.right)//递归获取右子树最大node

TreeNode temp = left.val > root.v

小编精心整理的这篇内容:二叉树的最大节点公式,如果你看到此处请一定要收藏哦!

阅读剩余内容
网友评论
相关阅读
小编推荐