首页 > 代码库 > 编程算法 - 二叉树的深度 代码(C)

编程算法 - 二叉树的深度 代码(C)

二叉树的深度 代码(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 = http://www.mamicode.com/1;>

输出:

result = 4