《剑指offer》——二叉树的深度
2015-11-08 19:42
351 查看
T:
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
本题没什么难度,以一个递归即可解决。
code:
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
本题没什么难度,以一个递归即可解决。
code:
package niuke.sward2offer.treeDepth; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } /** * T: 二叉树的深度 * * 题目描述 * 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 * * date: 2015.11.8 19:15 * @author SSS * */ public class Solution { /** * 一个递归就可以解决: * 递归函数TreeDepth(TreeNode param)表示以参数节点param为根节点的子树的深度 * @param root * @return */ public int TreeDepth(TreeNode root) { if (root == null) { return 0; } int depth; if (this.TreeDepth(root.left) > this.TreeDepth(root.right)) { return 1 + this.TreeDepth(root.left); } else { return 1 + this.TreeDepth(root.right); } } public static void main(String []args) { TreeNode root = new TreeNode(1); TreeNode left1 = new TreeNode(1); TreeNode right1 = new TreeNode(1); root.left = left1; root.right = right1; TreeNode left11 = new TreeNode(3); TreeNode right12 = new TreeNode(4); left1.right = right12; right12.left = left11; right12.right = null; TreeNode left21 = new TreeNode(3); right1.left = left21; left21.left = null; left21.right = null; left11.left = null; left11.right = null; left1.left = null; right1.right = null; Solution solution = new Solution(); System.out.println(solution.TreeDepth(root)); } }
相关文章推荐
- bootstrap在线模板
- H5性能调优
- JSP
- 1. javascript 引擎Rhino源代码分析 简介
- 元素水平垂直居中的css3实现
- 在js中是否存在重载?
- 有关WebCalendar.js在日期显示中,与星期数不相符的修改
- 2015-09-28Javascript(一)
- js--webSocket入门
- HDU 4939 Stupid Tower Defense(贪心+动态规划)
- React Native技术栈学习路径
- HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
- 【转】JavaScript面向对象
- 学习百度、腾讯及lofter的前端兼容及布局
- React.js学习笔记
- <React: Up and Running>阅读笔记 — The life of a component & Excel: a fancy table component
- ionic/angular中module探秘
- <React: Up and Running>阅读笔记 — JSX
- 编辑距离及编辑距离算法(求字符的相似度) js版
- jquery 侧边导航