zoukankan      html  css  js  c++  java
  • Leetcode:Minimus Depth of Binary Tree

    The problem description:

    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.

    这个题目本身不是很难,二叉树的广搜找到最浅的那个子树。但这个题目是比较典型的再广搜的时候需要记录或者使用到当前深度信息,所以我们需要一层一层来处理,而不是

    单纯的都放在队列里面,处理完为止。处理的时候,使用了2个队列,分别保存前后两层的节点。

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     int minDepth(TreeNode *root) {
    13         if(root==NULL) return 0;
    14         int minDepth =1;
    15         queue<TreeNode*> outq,intq;
    16         outq.push(root);
    17         TreeNode* nd;
    18         while(!outq.empty())
    19         {
    20             nd = outq.front();
    21             outq.pop();
    22             if(nd->left==NULL && nd->right ==NULL)
    23                 return minDepth;
    24             if(nd->left!=NULL) intq.push(nd->left);
    25             if(nd->right!=NULL) intq.push(nd->right);
    26             
    27             if(outq.empty()) 
    28             {
    29                 swap(intq,outq);
    30                 minDepth++;
    31             }
    32                 
    33         }
    34         return minDepth;
    35         
    36     }
    37 };

    注意,在处理的时候要保证没有空节点(NULL)被放进去了,不然可能导致外层outq在没有被内层赋值时,就被判断为空而跳出。

  • 相关阅读:
    discuz方法赏析
    rpm安装软件(需管理员权限)
    php.ini修改php上传文件大小限制
    grep 基于关键字搜索
    网络排查的原则
    Sublime Text快捷键
    表格无边框,有内框,在table嵌套时,防止出现重复边线
    文件(图片)强制下载
    网络相关配置文件的位置
    ip,子网掩码,网关,DNS
  • 原文地址:https://www.cnblogs.com/soyscut/p/3735848.html
Copyright © 2011-2022 走看看