minimun-depth-of-binary-tree
題目:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
?
/**
?* Definition for binary tree
?* public class TreeNode {
?*???? int val;
?*???? TreeNode left;
?*???? TreeNode right;
?*???? TreeNode(int x) { val = x; }
?* }
?*/
import java.util.*;
public class Solution {
??? public int run(TreeNode root) {
??????? if(root==null)
??????????? return 0;
??????? if(root.left==null&&root.right==null)
??????????? return 1;
?
//方法一:遞歸
???? /*?? if(root.left==null)// 若左子樹為空,則返回右子樹的最小深度+1
??????????? return run(root.right)+1;
??????? if(root.right==null)
??????????? return run(root.left)+1;
???????
??????? int l=run(root.left);
??????? int r=run(root.right);
???????
??????? return (l>r)?(r+1):(l+1);
??????? */
? ? ? ?//方法二
??????? Queue<TreeNode> q=new LinkedList<>();
?????? // 思路是層序遍歷,找到第一個左右結點都為null的情況,就返回
??????? q.add(root);
??????? int level=0;
??????? while(!q.isEmpty()){
??????????? int size=q.size();
???????????? level++;
??????????? for(int i=0;i<size;i++){
??????????????? TreeNode node=q.poll();
??????????????? if(node.left==null&&node.right==null)
??????????????????? return level;
??????????????? if(node.left!=null)
??????????????????? q.add(node.left);
??????????????? if(node.right!=null)
??????????????? ????q.add(node.right);
???????????????
??????????? }
??????????
??????? }
???????
??????? return level;
??? }
}
轉載于:https://www.cnblogs.com/xiaolovewei/p/8029796.html
總結
以上是生活随笔為你收集整理的minimun-depth-of-binary-tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据交互 跨域问题
- 下一篇: mapreduce原理