leetcode Minimum Depth of Binary Tree

https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/

求二叉树的最小深度。

先看看如何求二叉树的深度:

int GetDepth(BinaryTreeNode * pRoot){if(pRoot == NULL) // 递归出口return 0;int depthLeft = GetDepth(pRoot->m_pLeft);int depthRight = GetDepth(pRoot->m_pRight);return depthLeft > depthRight ? (depthLeft + 1) : (depthRight + 1); }这里有一个详细的有关二叉树的算法总结

左右子树有一个深度为0的数特殊情况。如果为0,那么树的最小深度是另一个子树的深度加1而不是0+1。

/** * Definition for binary tree * public class TreeNode { *int val; *TreeNode left; *TreeNode right; *TreeNode(int x) { val = x; } * } */public class Solution {public static int minDepth(TreeNode root) {if(root==null)return 0;if(root.left==null&&root.right==null)return 1;int left=minDepth(root.left);int right=minDepth(root.right);if(left==0)return right+1;if(right==0)return left+1;return (left<right?left:right)+1;}}还有一个求最深深度的问题https://oj.leetcode.com/submissions/detail/17722350/

public class Solution {public int maxDepth(TreeNode root) {if(root==null)return 0;if(root.left==null&&root.right==null)return 1;int left=maxDepth(root.left);int right=maxDepth(root.right);return Math.max(left,right)+1;}}

,见过旅行风景,就这样,慢慢学会了长大。

leetcode Minimum Depth of Binary Tree

相关文章:

你感兴趣的文章:

标签云: