地址 https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最小深度 2.
算法1
树的遍历 递归
C++ 代码
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int ans =9999999; void dfs(TreeNode* root,int step) { if(root==NULL) return; if(root->right==NULL && root->left==NULL){ ans= min(ans,step+1); return; } dfs(root->left,step+1); dfs(root->right,step+1); return ; } int minDepth(TreeNode* root) { if(root==NULL) return 0; else if(root->right==NULL && root->left==NULL) return 1; dfs(root->left,1); dfs(root->right,1); return ans; } };
原文:https://www.cnblogs.com/itdef/p/13539214.html