• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Uriel's Corner

            Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
            posts - 0, comments - 50, trackbacks - 0, articles - 594
            求二叉樹(shù)的最小深度,BFS或者DFS

            C++ BFS
             1 //111
             2 //Runtime: 32 ms (Beats 100%)
             3 
             4 /**
             5  * Definition for binary tree
             6  * struct TreeNode {
             7  *     int val;
             8  *     TreeNode *left;
             9  *     TreeNode *right;
            10  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
            11  * };
            12  */
            13 class Solution {
            14 public:
            15     struct Que {
            16         int depth;
            17         TreeNode *p;
            18     }q[100010];
            19         
            20     int minDepth(TreeNode *root) {
            21         int l = 0, r = 1, mx = 0, mi = 1000000;
            22         if(root == NULL) return 0;
            23         q[0].p = root;
            24         q[0].depth = 1;
            25         while(l < r) {
            26             if(q[l].p->left == NULL && q[l].p->right == NULL) {
            27                 if(q[l].depth < mi) mi = q[l].depth;
            28             }
            29             if(q[l].p->left != NULL) {
            30                 q[r].p = q[l].p->left;
            31                 q[r].depth = q[l].depth + 1;
            32                 ++r;
            33             }
            34             if(q[l].p->right != NULL) {
            35                 q[r].p = q[l].p->right;
            36                 q[r].depth = q[l].depth + 1;
            37                 ++r;
            38             }
            39             ++l;
            40         }
            41         return mi;
            42     }
            43 };

            Python DFS
             1 #111
             2 #Runtime: 808 ms (Beats 60.23%)
             3 #Memory: 94.9 MB (Beats 26.2%)
             4 
             5 # Definition for a binary tree node.
             6 # class TreeNode(object):
             7 #     def __init__(self, val=0, left=None, right=None):
             8 #         self.val = val
             9 #         self.left = left
            10 #         self.right = right
            11 class Solution(object):
            12     min_dep = 1000000
            13     def calDepth(self, root, depth):
            14         if root.left == None and root.right == None:
            15             self.min_dep = min(self.min_dep, depth)
            16             return
            17         if root.left != None:
            18             self.calDepth(root.left, depth + 1)
            19         if root.right != None:
            20             self.calDepth(root.right, depth + 1)
            21         return
            22     def minDepth(self, root):
            23         """
            24         :type root: TreeNode
            25         :rtype: int
            26         """
            27         if root == None:
            28             return 0
            29         self.calDepth(root, 1)
            30         return self.min_dep

            Python BFS
             1 #111
             2 #Runtime: 626 ms (Beats 98.87%)
             3 #Memory: 92.3 MB (Beats 79.39%)
             4 
             5 # Definition for a binary tree node.
             6 # class TreeNode(object):
             7 #     def __init__(self, val=0, left=None, right=None):
             8 #         self.val = val
             9 #         self.left = left
            10 #         self.right = right
            11 class Solution(object):
            12     def minDepth(self, root):
            13         """
            14         :type root: TreeNode
            15         :rtype: int
            16         """
            17         if not root:
            18             return 0
            19         q = deque([root])
            20         dep = 1
            21         while q:
            22             sz = len(q)
            23             while sz:
            24                 sz -= 1
            25                 node = q.popleft()
            26                 if not node.left and not node.right:
            27                     return dep
            28                 if node.left:
            29                     q.append(node.left)
            30                 if node.right:
            31                     q.append(node.right)
            32             dep += 1
            33         return ans
            久久棈精品久久久久久噜噜| 久久久久久国产精品免费免费| 一本大道久久东京热无码AV| 一本久久免费视频| 久久亚洲AV成人无码电影| 99久久精品免费看国产| 亚洲另类欧美综合久久图片区| 亚洲AV日韩精品久久久久| 色综合久久88色综合天天 | 久久亚洲私人国产精品vA| 狠狠色丁香婷婷久久综合不卡| 国内精品免费久久影院| 一本一本久久A久久综合精品| 国产午夜福利精品久久| 久久精品国产精品亚洲精品 | 九九精品99久久久香蕉| 久久精品成人免费国产片小草| 99久久国产综合精品女同图片| 亚洲精品高清久久| 乱亲女H秽乱长久久久| 色偷偷88欧美精品久久久| 成人资源影音先锋久久资源网| 国产aⅴ激情无码久久| 久久影视综合亚洲| 99久久综合狠狠综合久久| 成人综合伊人五月婷久久| 亚洲中文久久精品无码ww16| 伊人久久国产免费观看视频 | 欧美亚洲另类久久综合婷婷| 久久96国产精品久久久| 久久国产精品无码HDAV| 无码人妻久久一区二区三区免费丨| 日韩中文久久| 四虎国产精品免费久久| 亚洲精品国精品久久99热| 精品一久久香蕉国产线看播放| 99久久精品免费看国产一区二区三区| 久久亚洲春色中文字幕久久久 | 亚洲欧美国产精品专区久久| 久久精品国产99国产精品澳门 | 看久久久久久a级毛片|