题目链接:https://leetcode.com/problems/minimum-depth-of-binary-tree/description/
题目大意:求解二叉树的最小高度。
法一:BFS。新写一个class,承接TreeNode和当前结点高度。代码如下(耗时6ms):
1 static class MergeTree { 2 TreeNode root; 3 int depth; 4 MergeTree(TreeNode r, int d) { 5 root = r; 6 depth = d; 7 } 8 } 9 public int minDepth(TreeNode root) { 10 int res = Integer.MAX_VALUE; 11 if(root == null) { 12 return 0; 13 } 14 Queue<MergeTree> q = new LinkedList<MergeTree>(); 15 MergeTree mT = new MergeTree(root, 1); 16 q.offer(mT); 17 while(!q.isEmpty()) { 18 MergeTree tmpT = q.poll(); 19 TreeNode tmpN = tmpT.root; 20 if(tmpN.left != null) { 21 mT = new MergeTree(tmpN.left, tmpT.depth + 1); 22 q.offer(mT); 23 } 24 if(tmpN.right != null) { 25 mT = new MergeTree(tmpN.right, tmpT.depth + 1); 26 q.offer(mT); 27 } 28 if(tmpN.left == null && tmpN.right == null) { 29 res = Math.min(res, tmpT.depth); 30 } 31 } 32 return res; 33 }