二叉树节点间的最大距离问题
二叉树节点间的最大距离问题
从二叉树的节点 A 出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点 B 时,路
径上的节点数叫作 A 到 B 的距离。求整棵树上节点间的最大距离。
如果二叉树的节点数为 N,时间复杂度要求为 O(N)。
public static class Node{public int value;public Node left;public Node right;public Node(int data){this.value = data;}
}
public static int maxDistance(Node head){int[] record = new int[1];return posOrder(head, record);
}
public static int posOrder(Node head, int[] record){if(head == null){record[0] = 0;return 0;}int lMax = posOrder(head.left, record);int maxfromLeft = record[0];int rMax = posOrder(head.right, record);int maxFromRight = record[0];int curNodeMax = maxfromLeft + maxFromRight + 1;record[0] = Math.max(maxfromLeft, maxFromRight) + 1;return Math.max(Math.max(lMax,rMax), curNodeMax);
}
二叉树节点间的最大距离问题相关推荐
- 《程序员代码面试指南》第三章 二叉树问题 二叉树节点间的最大距离问题
题目 二叉树节点间的最大距离问题 java代码 package com.lizhouwei.chapter3;/*** @Description:二叉树节点间的最大距离问题* @Author: liz ...
- 二叉树节点间的最大距离
问题: 从二叉树节点A出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点B时,路径上的节点数叫做A到B的距离. 基本思路: 一个以h为头的树上,最大的距离只可能来自以下三种情况: h左 ...
- 二叉树结点间的最大距离问题
二叉树结点间的最大距离问题 递归 改进的写法 完整测试代码 题目 递归 解析 这个也是一个二叉树的问题,分为三步: 列出所有可能性: 列出结点需要的信息,并整合信息(成一个结构体): 改递归 ,先假设 ...
- 【IT笔试面试题整理】 二叉树任意两个节点间最大距离
求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数, 比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度. 一种是:经过根节点,此时只 ...
- 如何在NEO共识节点间分配任务
作者:Alexey Vanin 任何计算机系统都有监控操作,可能会发送心跳信息.校验和查询及哈希请求等.这些操作在本文中都被统称为任务.在中心化系统中,通常会有一个受认证的节点或节点群组来完成任务.而 ...
- ssh suse 配置_SUSE+linux+配置节点间的SSH信任关系
配置节点间的SSH信任关系 (1)在节点1上 oracle@node1:~ > pwd /home/oracle oracle@node1:~ > mkdir .ssh oracle@no ...
- ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化
ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果
- 集群节点间的延迟问题
集群节点间的延迟问题 mongoDB 一个弱点,就是最终一致性,这也是所有NoSQL 的一个问题. 在CAP 理论中,数据库在 (C)onsistency.(A)vailability和(P)arti ...
- 关于Oracle RAC节点间免密码策略
在RAC安装过程中无论grid或是Oracle软件都需要配置节点间免密码策略. 配置方法网上有很多,oracle和可以帮你配置,此处不多说. 但是在RAC运行过程中是不需要免密码登陆的,所以在集群安装 ...
最新文章
- c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
- python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...
- oracle11g AUD$维护
- shell脚本触发java程序支持传参补跑_01
- mysql删除盘点表,用友U8数据库表名参照表修改号参考.doc
- ASP.NET模拟其他用户进行关机
- pytest-xdist分布式执行测试用例
- jenkins pipeline之如何创建一个流水线
- bzoj 5281: [Usaco2018 Open]Talent Show【dp】
- Sql Server 全文检索
- BMFont把美术图片(汉字,数字,字母)字生成艺术字体fnt格式
- 基于PyQt5实现保存网页为pdf
- FastQC使用与结果详细解读
- Unity Shader - Planar Shadow - 平面阴影
- 计算工资、劳务税前或税后收入的JS代码(ES6)
- Java调整图片大小合并PNG图片生成ICON(保持背景透明)
- 服务器定位cpu高占用率代码php,面试官:线上服务器CPU占用率高如何排查定位问题?,...
- windows访问某网站速度慢,通过更换DNS解决
- Hololens2开发入门(一)环境搭建
- div 把四个角 变圆
热门文章
- 5 秒创建 k8s 集群[转]
- spark面试总结1
- [转帖]oracle改版sql server问题点汇总
- sm4加密 解密(oc)
- mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
- Android7.1去掉USB权限弹窗
- Android N Display Size
- Android 系统当中各种尺寸单位的定义及使用
- Java初学者不得不知的概念,JDK,JRE,JVM的区别?
- 在django restful framework中设置django model的property