当前位置: 首页 > news >正文

LintCode(632)查找二叉树中值最大的节点

问题

Find the maximum node in a binary tree, return the node.

Example

Given a binary tree:

     1
   /   \
 -5     2
 / \   /  \
0   3 -4  -5 

return the node with value 3.

考虑遍历二叉树来解决

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
     */
     /**
      * 思路
      * 1,参数合法性判断
      * 2,遍历二叉树,找出最大节点
      */
    public TreeNode maxNode(TreeNode root) {
        // write your code here
        if(root == null){
            return null;
        }
        //最大的节点
        TreeNode maxNode = root;
        //当前节点
        TreeNode p = root;
        //临时存放二叉树的链表集合
        LinkedList<TreeNode> nodeLink = new LinkedList<TreeNode>();
        while(p != null || !nodeLink.isEmpty()){
            if(p != null){
                nodeLink.push(p);
                p = p.left;
            }else{
                p = nodeLink.pop();
                if(maxNode.val < p.val){
                    maxNode = p;
                }
                p = p.right;
            }
        }
        return maxNode;
    }
}

 

相关文章:

  • LeetCode(20)判断字符串合法括号
  • spring整合jbpm的简述
  • nginx反向代理tomcat一段时间后出现的ERR_CONTENT_LENGTH_MISMATCH异常
  • cas简介
  • [one_demo_15]模拟交通灯管理系统
  • jquery easyui datagrid columns日期格式化问题
  • jquery使用$(xx).text()与字符串比较,明明看着相等,结果却为false
  • 联合使用jsp标签和struts的标签在jsp页面获取当前时间
  • 从iframe框架进入登录页面时跳出iframe到顶层页面
  • springboot简介
  • jpa
  • LintCode(22)将一个嵌套集合按照原顺序处理为Integer集合
  • [one_demo_16]直接插入排序的demo
  • [one_demo_17]使用传统方式实现线程间通信的例子
  • ThreadLocal
  • ERLANG 网工修炼笔记 ---- UDP
  • ES6语法详解(一)
  • HashMap剖析之内部结构
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • js正则,这点儿就够用了
  • learning koa2.x
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • spark本地环境的搭建到运行第一个spark程序
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • tab.js分享及浏览器兼容性问题汇总
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 聊聊redis的数据结构的应用
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 面试遇到的一些题
  • 盘点那些不知名却常用的 Git 操作
  • 前嗅ForeSpider教程:创建模板
  • 使用SAX解析XML
  • 智能合约Solidity教程-事件和日志(一)
  • Mac 上flink的安装与启动
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #includecmath
  • $.ajax,axios,fetch三种ajax请求的区别
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (java)关于Thread的挂起和恢复
  • (笔试题)合法字符串
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (五)网络优化与超参数选择--九五小庞
  • (一)u-boot-nand.bin的下载
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)iOS字体
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .netcore如何运行环境安装到Linux服务器
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET中winform传递参数至Url并获得返回值或文件