剑指offer——二叉树的深度

题目链接:

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

解题思路:

这道题目和二叉树打印成多行那个题目很像,所以代码也差不多啦!

 1 import java.util.ArrayList;
 2 /**
 3 public class TreeNode {
 4     int val = 0;
 5     TreeNode left = null;
 6     TreeNode right = null;
 7 
 8     public TreeNode(int val) {
 9         this.val = val;
10 
11     }
12 
13 }
14 */
15 public class Solution {
16     public int TreeDepth(TreeNode root) {
17         ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
18         ArrayList<Integer> list = new ArrayList<>();
19         ArrayList<TreeNode> queue = new ArrayList<>();
20         
21         if(root==null)
22             return 0;
23         
24         int start = 0;
25         int end = 1;
26         queue.add(root);
27         int count=0;
28         while(!queue.isEmpty())
29         {
30             TreeNode node = queue.remove(0);
31             start++;
32             if(node.left!=null)
33                 queue.add(node.left);
34             if(node.right!=null)
35                 queue.add(node.right);
36             list.add(node.val);
37             if(start == end)
38             {
39                 res.add(list);
40                 count++;
41                 start = 0;
42                 end = queue.size();
43                 list = new ArrayList<>();
44             }
45         }
46         return count;
47     }
48 }
原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10902107.html