Maximum Depth of Binary Tree

来源:互联网 发布:mysql队列 编辑:程序博客网 时间:2024/05/20 06:09

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.

C++:   用递归方法实现

#include <iostream>#include <stdlib.h>using namespace std;/** * Definition for binary tree */typedef struct TreeNode {int val;TreeNode *left;TreeNode *right;//TreeNode(int x) : val(x), left(NULL), right(NULL) {}}TreeNode,*BiTree ;char *ch;//用于输入的字符指针void CreateTree(BiTree &T) {//前序法创建二叉树if(*ch++=='#')T = NULL;else {T = (TreeNode*)malloc(sizeof(TreeNode));if(!T) exit(1);T->val = *(ch-1);CreateTree(T->left);CreateTree(T->right);}}//递归遍历方法int maxDepth(TreeNode *root) {if(root == NULL)return 0;int leftDepth =  maxDepth(root->left);int rightDepth = maxDepth(root->right);return leftDepth>rightDepth ? leftDepth+1:rightDepth+1;}int main() {BiTree T;char case1[] = {"ABC##DE#G##F###"};ch = case1;CreateTree(T);cout << maxDepth(T) << endl;return 0;}


0 0
原创粉丝点击