算法的思想: 采用二叉树的后序遍历非递归算法。由于后序遍历非递归算法使用一个栈实现,每次都会在一条路径上走到最底层才向上访问,再向右访问。因此,记录下栈在遍历中的最大值,即为二叉树的最大深度。#include #include using namespace std;struct BinTree{....
                            
                            
                                分类:
编程语言   时间:
2015-10-08 00:37:40   
                                阅读次数:
221
                             
                         
                    
                        
                            
                            
                                // 求二叉树的深度和宽度.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include #include using namespace std;struct BTNode{	char m_value;	BTNode *m_left;	BTNode *m_righ...
                            
                            
                                分类:
其他好文   时间:
2015-09-22 23:27:54   
                                阅读次数:
175
                             
                         
                    
                        
                            
                            
                                完全二叉树——若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。解题思路:满二叉树有一个性质是节点数等于2^h-1(h为高度),所以可以这样判断节点的左右高度是不是一样,如果是一样说明是满二叉树,就可以用...
                            
                            
                                分类:
编程语言   时间:
2015-09-07 22:37:44   
                                阅读次数:
178
                             
                         
                    
                        
                            
                            
                                输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路:递归的想法,每次递归,左右子树深度+1,取其中最大值。 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNo...
                            
                            
                                分类:
其他好文   时间:
2015-09-02 00:29:43   
                                阅读次数:
128
                             
                         
                    
                        
                            
                            
                                1. Java如何进行垃圾回收
2. Java是用哪种字符集进行编码的?
3. 求二叉树的深度,写代码
4. 用过哪些集合?HashMap实现原理,Hashtable与ConcurrentHashMap的区别
5. 不想进行序列化,用哪个关键字
6. SQL语句优化举例,核心
7. 递归算法的最大缺点
8. 写观察者模式
9. Java如何实现夸平台
10. 自动事务如何实现...
                            
                            
                                分类:
编程语言   时间:
2015-08-31 10:14:02   
                                阅读次数:
174
                             
                         
                    
                        
                            
                            
                                题目
输入一颗二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的结点形成树的一条路径,最长路径的长度为树的深度。
思路
简化一下题目,思考一个节点的时候二叉树的深度为 1,因为左右子树都为0;
2个节点的时候二叉树深度为 2,左右子树的深度最大值加 1;
3个节点分两种情况:
   4                   3
  /  \                ...
                            
                            
                                分类:
其他好文   时间:
2015-08-21 00:14:55   
                                阅读次数:
229
                             
                         
                    
                        
                            
                            
                                #include #include typedef int Item;typedef struct node{ Item m_value; struct node* m_pLeft; struct node* m_pRight;}BinaryTreeNode;int getTree...
                            
                            
                                分类:
其他好文   时间:
2015-08-18 13:35:21   
                                阅读次数:
142
                             
                         
                    
                        
                            
                            
                                题目:输入一棵二叉树的根节点,求该数的深度。从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度。
例如,如下图的二叉树的深度为4,因为它从根节点到叶结点的最长的路径包含4个结点(从根结点1开始,经过2和结点5,最终到达叶结点7)
我们可以从另一种角度来理解树的深度。如果一棵树只有一个结点,它的深度为1,如果根节点只有左子树而没有右子树,那么树的深度...
                            
                            
                                分类:
编程语言   时间:
2015-08-10 09:27:21   
                                阅读次数:
175
                             
                         
                    
                        
                            
                            
                                二叉树数据结构声明:
struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
};
  1、递归求二叉树深度
  int getDepth(TreeNode *root)
{
    if (root == NULL)
    {
        return 0;
    }
    re...
                            
                            
                                分类:
其他好文   时间:
2015-08-09 08:24:11   
                                阅读次数:
204
                             
                         
                    
                        
                            
                            
                                二叉树的最大深度给定一个二叉树,找出其最大深度。 
二叉树的深度为根节点到最远叶子节点的距离。如果二叉树为空,则深度为0 
如果不为空,分别求左子树的深度和右子树的深度,去最大的再加1,因为根节点深度是1,要加进去。int maxDepth(TreeNode *root) {
        // write your code (here)
        if(root == NULL)...
                            
                            
                                分类:
其他好文   时间:
2015-08-05 18:29:45   
                                阅读次数:
124