LeetCode111:Minimum Depth of Binary Tree

来源:互联网 发布:python中文注释 编辑:程序博客网 时间:2024/05/21 20:51

这里写图片描述

DFS系列

思路:
1.边界条件:如果树为空,则返回
2.满足条件的解:当到达叶子节点时,即左右子树为空,则比较当前的深度与所记录的最小深度,若比最小深度小,则更新最小深度,否则不执行。
3.如果左子树不为空则进行搜索,如果右子树不为空则进行搜索。

public class Solution {    public int minDepth=Integer.MAX_VALUE;    public void robot(TreeNode root,int curDepth){       //边界条件       if(root==null) return;       //满足解的条件 (叶子节点)        if(root.left==null && root.right==null){            //得到最小解            if(curDepth<minDepth)                minDepth = curDepth;        }        //搜索左子树 每搜索一层 深度需要+1        if(root.left!=null){            robot(root.left,curDepth+1);        }        //搜索右子树 每搜索一层 深度需要+1        if(root.right!=null){            robot(root.right,curDepth+1);        }    }    public int minDepth(TreeNode root) {        if(root==null) return 0;        robot(root,1);        return minDepth;    }}
0 0
原创粉丝点击