Leetcode_minimum-depth-of-binary-tree (c++ and python version)
2014-03-19 11:56
411 查看
地址:http://oj.leetcode.com/problems/minimum-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.
思路:用队列来模拟,并记录每一层的节点个数。在某一层上当其左右子树均为null时候,它就是第一个找到的叶子节点,返回监测变量height。
参考代码:
python version
# Definition for a binary tree node# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None
class Solution: # @param root, a tree node # @return an integer def minDepth(self, root): if not root: return 0 depth = 0 q = [root] while q: depth += 1 sz = len(q) while sz: sz -= 1 cur = q.pop() if not cur.left and not cur.right: return depth if cur.left: q.insert(0, cur.left) if cur.right: q.insert(0, cur.right)
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.
思路:用队列来模拟,并记录每一层的节点个数。在某一层上当其左右子树均为null时候,它就是第一个找到的叶子节点,返回监测变量height。
参考代码:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int minDepth(TreeNode *root) { if(!root) { return 0; } int height = 0; queue<TreeNode*>q; q.push(root); while(!q.empty()) { ++height; int size = q.size(); while(size--) { TreeNode* pnode = q.front(); q.pop(); if(!pnode->left && !pnode->right) { return height; } if(pnode->left) { q.push(pnode->left); } if(pnode->right) { q.push(pnode->right); } } } } };
python version
# Definition for a binary tree node# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None
class Solution: # @param root, a tree node # @return an integer def minDepth(self, root): if not root: return 0 depth = 0 q = [root] while q: depth += 1 sz = len(q) while sz: sz -= 1 cur = q.pop() if not cur.left and not cur.right: return depth if cur.left: q.insert(0, cur.left) if cur.right: q.insert(0, cur.right)
相关文章推荐
- Leetcode_maximum-depth-of-binary-tree (updated c++ and python version)
- 【Leetcode】【python】Minimum Depth of Binary Tree
- Leetcode_binary-tree-level-order-traversal (updated c++ and python version)
- [LeetCode]题解(python):111-Minimum Depth of Binary Tree
- [Java代码] [Leetcode] Maximum and Minimum Depth of Binary Tree 二叉树的最小最大深度
- *Leetcode_binary-tree-maximum-path-sum (updated c++ and python version)
- leetcode Minimum Depth of Binary Tree python
- 【LeetCode-111】Minimum Depth of Binary Tree(C++)
- leetcode 111 Minimum Depth of Binary Tree C++
- 【leetcode c++】111 Minimum Depth of Binary Tree
- leetcode:Minimum Depth of Binary Tree【Python版】
- leetcode_c++:树: Minimum Depth of Binary Tree(111)
- leetcode Minimum Depth of Binary Tree C++题解
- Leetcode_binary-tree-zigzag-level-order-traversal (updated c++ and python version)
- [C++]LeetCode: 30 Minimum Depth of Binary Tree
- 【LeetCode with Python】 Minimum Depth of Binary Tree
- [leetcode]Minimum Depth of Binary Tree @ Python
- leetCode - Minimum Depth of Binary Tree
- leetcode-Minimum Depth of Binary Tree
- LeetCode之Minimum Depth of Binary Tree