zoukankan      html  css  js  c++  java
  • LeetCode:104_Maximum Depth of Binary Tree | 二叉树的最大深度 | Easy

    要求:求二叉树的深度(二叉树的深度为最远叶子节点到根节点的距离,即根节点到最远叶子节点的距离)

    Given a binary tree, find its maximum depth.
    
    The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    有两种求解的思路,一种采用DFS的思想,一种采用BFS的思想,如下代码所示:

     1 struct TreeNode {
     2     int            val;
     3     TreeNode*    left;
     4     TreeNode*    right;
     5     TreeNode(int x): val(x), left(NULL),right(NULL) {}
     6 };
     7 
     8 //采用DFS的思想
     9 int maxDepth(TreeNode *root)
    10 {
    11     if (NULL == root)
    12         return 0;
    13     int l = maxDepth(root->left);
    14     int r = maxDepth(root->right);
    15 
    16     return l > r ? l + 1:r+1;
    17     //以上这两种方式有一种更简便的方法
    18     //return 1 + max(maxDepth(root->left), maxDepth(root->right));
    19 }
    20 
    21 //采用BFS的方法,引入队列
    22 int maxDepth(TreeNode *root)
    23 {
    24     if (NULL == root)
    25         return 0;
    26     queue <TreeNode *> que;
    27     int nCount = 1;
    28     int nDepth = 0;// 记录队列里面每一层上的元素
    29 
    30     que.push(root);
    31     while(!que.empty()) {
    32         TreeNode *pTemp = que.front();
    33         que.pop();
    34         nCount --;
    35 
    36         if (pTemp->left)
    37             que.push(pTemp->left);
    38         if (pTemp->right)
    39             que.push(pTemp->right);
    40         
    41         if (nCount == 0) {
    42             nDepth ++;
    43             nCount = que.size();
    44         }
    45     }
    46     return nDepth;
    47 }
  • 相关阅读:
    IO-BufferedInputStream
    IO-FileOutputStream
    IO-FileWriter
    关于我
    并不知道取什么标题
    颓废日记
    笔记合集
    Codeforces Round #690 (Div. 3) 简要题解
    Codeforces 1470B Strange Definition
    Codeforces 1466E Apollo versus Pan
  • 原文地址:https://www.cnblogs.com/bakari/p/4126693.html
Copyright © 2011-2022 走看看