【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

leetcode 二叉树最小深度

原创 2016年08月29日 20:41:20

刚开始刷leetcode,因为以前刷OJ,代码写的比较随意,所以这里一看就给个类就楞了,

想了一会不纠结这个了,开始做题,不敢定义全局变量,后来定义了static变量,写了个递归,结果可能姿势不对,

递归段溢出了,然后突然想到用队列套pair,最终过了,看了下讨论区,才发现递归的正确姿势,自己犯傻了,

贴上自己的代码:

class Solution {
public:
    int run(TreeNode *root) {
        if(root==NULL)
            return 0;
      queue<pair<TreeNode *,int> > q;
        q.push(make_pair(root,1));
        int min=10000000;
      while(!q.empty()){
         pair<TreeNode *,int> p;
          p=q.front();
          q.pop();
          TreeNode *tem=p.first;
          if(tem->left!=NULL)
              q.push(make_pair(tem->left,p.second+1));
          if(tem->right!=NULL)
              q.push(make_pair(tem->right,p.second+1));
          if(tem->left==NULL&&tem->right==NULL){
              if(p.second<min)
              min=p.second;
          }
      }
        return min;
    }
};
递归返回值也是可以叠加的,不一定需要多个参数,或者多个变量:

class Solution {
public:
    int run(TreeNode *root) {
        if(root==NULL)
            return 0;
      	if(root->left==NULL)
            return run(root->right)+1;
        if(root->right==NULL)
            return run(root->left)+1;
        else
            return min(run(root->left),run(root->right))+1;
    }
};
其实局限于格式的话,可以另外写个函数,让给的函数调用那个函数。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

求二叉树的最小深度 Minimum Depth of Binary Tree

题目源自于leetcode。 题目:Given a binary tree, find its minimum depth.The minimum depth is the number of ...

面试常见十大类算法汇总

1.String/Array/Matrix 在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代码,下面这个

【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】

【111-Minimum Depth of Binary Tree(二叉树的最小深度)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tre...

LeetCode 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. 本题思路: 1. 每进入一层用一个变量(这里是levelNum)记录当前从根节点到这一层节点的节点数 2. 当到达叶子节点的时候,就记录当前最小深度overall 2. 当所有的叶子节点都到达一
  • bcyy
  • bcyy
  • 2013-11-06 08:02
  • 49

[Java代码] [Leetcode] Maximum and Minimum Depth of Binary Tree 二叉树的最小最大深度

Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. The maximum depth is...

代码面试最常用的10大算法(转)

原文地址: http://www.csdn.net/article/2014-04-10/2819237-Top-10-Algorithms-for-Coding-Interview   <h1 class="title" style="margin-bottom: 5p

Minimum Depth of Binary Tree 二叉树的最小深度

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor...

代码面试最常用的10大算法

 在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。 本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。1.String/Array/Matrix 在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代码,下面这个方法大家应该记住:<pre class="java" name="code"

LeetCode Minimum Depth of Binary Tree 最小深度二叉树

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the sho...

LeetCode 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. 本题思路: 1. 每进入一层用一个变量(这里是levelNum)记录当前从根节点到这一层节点的节点数 2. 当到达叶子节点的时候,就记录当前最小深度overall 2. 当所有的叶子节点都到达一
  • jgsj
  • jgsj
  • 2013-11-06 08:02
  • 61
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)