本文共 653 字,大约阅读时间需要 2 分钟。
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
分析
二叉树的深度是所有节点的最大深度。二叉树的问题一般通过递归可以实现,从二叉树的根节点开始,树的深度等于左子节点深度和右子节点深度的最大值加上1(根节点),递归调用即可。
牛客AC:
/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }};*/public class Solution { public int TreeDepth(TreeNode pRoot) { if(pRoot == null) return 0; else return max(TreeDepth(pRoot.left), TreeDepth(pRoot.right)) + 1; } public int max(int num1, int num2) { return (num1 > num2) ? num1 : num2; }}
参考
1. 何海涛,剑指offer名企面试官精讲典型编程题(纪念版),电子工业出版社转载地址:http://azxgi.baihongyu.com/