现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
来源:互联网 发布:2015乘用车销量数据 编辑:程序博客网 时间:2024/05/18 13:12
现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
输入描述:
输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,
下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号
输出描述:
输出树的高度,为一个整数
示例1
输入
5
0 1
0 2
1 3
1 4
输出
3
一段时间没写java了,竟然连建树都不会了。。。
这个题并不难,大体思路是:对给定的一棵树root,Height=max(root.left,root.right)+1。
感觉困难的就是输入困难一点
import java.util.Scanner;import java.util.HashMap;public class Main { public static class TreeNode{ TreeNode left=null; TreeNode right=null; int value; public TreeNode(int v){ this.value=v; } } public int Height(TreeNode root){ if(root==null){ return 0; } int left=0,right=0; if(root.left!=null){ left=Height(root.left); } if(root.right!=null){ right=Height(root.right); } return ((left>=right)?left:right)+1; } public static void main(String[] args) { Main m=new Main(); Scanner s=new Scanner(System.in); int num=s.nextInt(); int rootval=s.nextInt(); int rootfirst=s.nextInt(); TreeNode root=new TreeNode(rootval); TreeNode rootLeft=new TreeNode(rootfirst); root.left=rootLeft; HashMap<Integer,TreeNode> nodeMap=new HashMap<Integer,TreeNode>(); nodeMap.put(rootval, root); nodeMap.put(rootfirst,rootLeft); for(int i=0;i<num-2;i++){ int parentval=s.nextInt(); int childval=s.nextInt(); TreeNode parent=nodeMap.get(parentval); TreeNode child=new TreeNode(childval); if(parent!=null){ if(parent.left==null){ parent.left=child; }else if(parent.right==null){ parent.right=child; } }else{ parent=new TreeNode(parentval); parent.left=child; } nodeMap.put(parentval, parent); nodeMap.put(childval, child); } System.out.println(m.Height(root)); s.close(); }}
阅读全文
0 0
- 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
- SQL SERVER 2000 遍历父子关系数据的表(二叉树)获得所有子节点 所有父节点及节点层数函数
- 计算给定时间与现在的时间差
- 使用递归算法从给定树上任意几个节点将这几个节点的所有下级 和 上级返回出来
- 莫非现在的人都是傻子
- 现在的大学生都是在享受
- 现在的程序员都是怎么了
- 现在流的泪,都是当年犯滴错
- 找出二叉树中距离给定节点为k的节点
- 现在的
- 二叉树的高度和节点数
- 对于一颗给定的二叉树,输出所有从根节点到叶节点的路径
- 给定一棵二叉树,二叉树每个节点的值唯一,从根节点开始找出路径上的所有节点的节点值之和等于规定值的路径
- 给定一个完全的二叉树,计算节点的数量。
- 给定一个数字字符串,返回数字可能表示的所有可能的字母组合。数字与字母的对应关系和手机按键对应。
- 给定有序数组,创建高度最小的二叉查找树
- 计算二叉树的高度、节点数、叶子节点数
- 数据库 SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点
- extern "c"用法解析
- Java连接Redis数据库 事务、管道和分布式的调用方式
- ViewGroup 事件分发
- SCXML有限状态机规范详解与使用
- spring定时器的基本使用
- 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
- linux环境下监控日志的变化命令 tail -f
- OkHttp 网络请求
- 顺序表应用1:多余元素删除之移位算法
- springboot-shiro
- SSH spring+springmvc+hibernate+maven 整合详解
- Docker在PHP中的实践过程
- HDU 6215 链表
- Java之List&Set&Map详解