二叉树的最大节点

描述

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

样例

样例1:

输入:
{1,-5,3,1,2,-4,-5}
输出: 3
说明:
这棵树如下所示:
     1
   /   \
 -5     3
 / \   /  \
1   2 -4  -5

样例 2

输入:
{10,-5,2,0,3,-4,-5}
输出: 10
说明:
这棵树如下所示:
     10
   /   \
 -5     2
 / \   /  \
0   3 -4  -5 

代码

1.创建一个二叉树

class TreeNode {
    public int val;
      public TreeNode left, right;
      public TreeNode(int val) {
          this.val = val;
          this.left = this.right = null;
      }
}

2. 创建一个包含函数的测试类

public class MaxNode {
    public static void main(String[] args) {
        TreeNode treeNode1 = new TreeNode(1);
        TreeNode treeNode2 = new TreeNode(-5);
        TreeNode treeNode3 = new TreeNode(2);
        TreeNode treeNode4 = new TreeNode(0);
        TreeNode treeNode5 = new TreeNode(3);
        TreeNode treeNode6 = new TreeNode(-4);
        TreeNode treeNode7 = new TreeNode(-5);

        treeNode1.left = treeNode2;
        treeNode1.right = treeNode3;
        treeNode2.left = treeNode4;
        treeNode2.right = treeNode5;
        treeNode3.left = treeNode6;
        treeNode3.right = treeNode7;

        System.out.println(maxNode(treeNode1).val);
    }

    public static TreeNode maxNode(TreeNode root){
        ArrayList<TreeNode> result=new ArrayList<>();
        result.add(root);
        search(root,result);
        return result.get(0);
    }
    public static void search(TreeNode root,ArrayList<TreeNode> result){
        if (root==null){
            return;
        }
        if (result.get(0).val<root.val){
            result.set(0,root);
        }
        if (root.left!=null){
            search(root.left,result);
        }
        if (root.right!=null){
            search(root.right,result);
        }
    }
}

Accepted

输入

查看差别

{1,-5,3,1,2,-4,-5}

输出

3

期望答案

3

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值