二叉树节点间的最大距离问题
从二叉树的节点 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);
}

二叉树节点间的最大距离问题相关推荐

  1. 《程序员代码面试指南》第三章 二叉树问题 二叉树节点间的最大距离问题

    题目 二叉树节点间的最大距离问题 java代码 package com.lizhouwei.chapter3;/*** @Description:二叉树节点间的最大距离问题* @Author: liz ...

  2. 二叉树节点间的最大距离

    问题:  从二叉树节点A出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点B时,路径上的节点数叫做A到B的距离. 基本思路:  一个以h为头的树上,最大的距离只可能来自以下三种情况: h左 ...

  3. 二叉树结点间的最大距离问题

    二叉树结点间的最大距离问题 递归 改进的写法 完整测试代码 题目 递归 解析 这个也是一个二叉树的问题,分为三步: 列出所有可能性: 列出结点需要的信息,并整合信息(成一个结构体): 改递归 ,先假设 ...

  4. 【IT笔试面试题整理】 二叉树任意两个节点间最大距离

    求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数, 比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度. 一种是:经过根节点,此时只 ...

  5. 如何在NEO共识节点间分配任务

    作者:Alexey Vanin 任何计算机系统都有监控操作,可能会发送心跳信息.校验和查询及哈希请求等.这些操作在本文中都被统称为任务.在中心化系统中,通常会有一个受认证的节点或节点群组来完成任务.而 ...

  6. ssh suse 配置_SUSE+linux+配置节点间的SSH信任关系

    配置节点间的SSH信任关系 (1)在节点1上 oracle@node1:~ > pwd /home/oracle oracle@node1:~ > mkdir .ssh oracle@no ...

  7. ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化

    ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果

  8. 集群节点间的延迟问题

    集群节点间的延迟问题 mongoDB 一个弱点,就是最终一致性,这也是所有NoSQL 的一个问题. 在CAP 理论中,数据库在 (C)onsistency.(A)vailability和(P)arti ...

  9. 关于Oracle RAC节点间免密码策略

    在RAC安装过程中无论grid或是Oracle软件都需要配置节点间免密码策略. 配置方法网上有很多,oracle和可以帮你配置,此处不多说. 但是在RAC运行过程中是不需要免密码登陆的,所以在集群安装 ...

最新文章

  1. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
  2. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...
  3. oracle11g AUD$维护
  4. shell脚本触发java程序支持传参补跑_01
  5. mysql删除盘点表,用友U8数据库表名参照表修改号参考.doc
  6. ASP.NET模拟其他用户进行关机
  7. pytest-xdist分布式执行测试用例
  8. jenkins pipeline之如何创建一个流水线
  9. bzoj 5281: [Usaco2018 Open]Talent Show【dp】
  10. Sql Server 全文检索
  11. BMFont把美术图片(汉字,数字,字母)字生成艺术字体fnt格式
  12. 基于PyQt5实现保存网页为pdf
  13. FastQC使用与结果详细解读
  14. Unity Shader - Planar Shadow - 平面阴影
  15. 计算工资、劳务税前或税后收入的JS代码(ES6)
  16. Java调整图片大小合并PNG图片生成ICON(保持背景透明)
  17. 服务器定位cpu高占用率代码php,面试官:线上服务器CPU占用率高如何排查定位问题?,...
  18. windows访问某网站速度慢,通过更换DNS解决
  19. Hololens2开发入门(一)环境搭建
  20. div 把四个角 变圆

热门文章

  1. 5 秒创建 k8s 集群[转]
  2. spark面试总结1
  3. [转帖]oracle改版sql server问题点汇总
  4. sm4加密 解密(oc)
  5. mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
  6. Android7.1去掉USB权限弹窗
  7. Android N Display Size
  8. Android 系统当中各种尺寸单位的定义及使用
  9. Java初学者不得不知的概念,JDK,JRE,JVM的区别?
  10. 在django restful framework中设置django model的property