• 编程算法


    二叉树的深度 代码(C)


    本文地址: http://blog.csdn.net/caroline_wendy


    题目: 输入一棵二叉树的根节点, 求该树的深度.


    依次选择最深的左右子树, 然后递归加1.


    代码:

    /*
     * main.cpp
     *
     *  Created on: 2014.6.12
     *      Author: Spike
     */
    
    /*eclipse cdt, gcc 4.8.1*/
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct BinaryTreeNode {
    	int m_nValue;
    	BinaryTreeNode* m_pLeft;
    	BinaryTreeNode* m_pRight;
    };
    
    int TreeDepth(BinaryTreeNode* pRoot) {
    	if (pRoot == NULL)
    		return 0;
    	int nLeft = TreeDepth(pRoot->m_pLeft);
    	int nRight = TreeDepth(pRoot->m_pRight);
    	return (nLeft>nRight) ? (nLeft+1):(nRight+1);
    }
    
    BinaryTreeNode* init(void) {
    	BinaryTreeNode* pRoot = new BinaryTreeNode(); pRoot->m_nValue = 1;
    	BinaryTreeNode* pNode2 = new BinaryTreeNode(); pNode2->m_nValue = 2;
    	BinaryTreeNode* pNode3 = new BinaryTreeNode(); pNode3->m_nValue = 3;
    	BinaryTreeNode* pNode4 = new BinaryTreeNode(); pNode4->m_nValue = 4;
    	BinaryTreeNode* pNode5 = new BinaryTreeNode(); pNode5->m_nValue = 5;
    	BinaryTreeNode* pNode6 = new BinaryTreeNode(); pNode6->m_nValue = 6;
    	BinaryTreeNode* pNode7 = new BinaryTreeNode(); pNode7->m_nValue = 7;
    	pRoot->m_pLeft = pNode2; pRoot->m_pRight = pNode3;
    	pNode2->m_pLeft = pNode4; pNode2->m_pRight = pNode5;
    	pNode4->m_pLeft = NULL; pNode4->m_pRight = NULL;
    	pNode5->m_pLeft = pNode7; pNode5->m_pRight = NULL;
    	pNode7->m_pLeft = NULL; pNode7->m_pRight = NULL;
    	pNode3->m_pLeft = NULL; pNode3->m_pRight = pNode6;
    	pNode6->m_pLeft = NULL; pNode6->m_pRight = NULL;
    	return pRoot;
    }
    
    int main(void)
    {
    	BinaryTreeNode* pRoot = init();
    	int result = TreeDepth(pRoot);
    	printf("result = %d
    ", result);
        return 0;
    }
    


    输出:

    result = 4




  • 相关阅读:
    java.net.BindException: Address already in use: 解决方法
    openlayers中单击获取要素
    OpenLayers绘制图形
    springboot启动失败( No active profile set, falling back to default profiles: default)
    Java学习日报7.16
    Java学习日报7.15
    Java学习日报7.14
    Java学习日报7.13
    Java学习日报7.12
    Java学习日报7.10
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4386734.html
Copyright © 2020-2023  润新知