题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
实现语言:Java
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.LinkedList; public class Solution { public int TreeDepth(TreeNode root) { if(root==null){ return 0; } LinkedList<TreeNode> que=new LinkedList<TreeNode>(); que.offer(root); int curNode=1; int depth=0; while(!que.isEmpty()){ root=que.poll(); --curNode; if(root.left!=null){ que.offer(root.left); } if(root.right!=null){ que.offer(root.right); } if(curNode==0){ ++depth; curNode=que.size(); } } return depth; } }
实现语言:Java
/** 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 root) { if(root==null){ return 0; } int left=TreeDepth(root.left); int right=TreeDepth(root.right); return left>right?left+1:right+1; } }