剑指offer-二叉树的深度

    xiaoxiao2025-03-24  44

    题目描述:

    输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

    算法思想:

    一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么数的深度应该为左子树的深度加1,;同样如果根结点只有右子树而没有左子树,那么树的深度应该是右子树的深度加1.

    代码

    /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ //一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么数的深度应该为左子树的深度加1,; //同样如果根结点只有右子树而没有左子树,那么树的深度应该是右子树的深度加1. class Solution { public: int TreeDepth(TreeNode* pRoot) { int i,j; int nleft,nright; if(pRoot==NULL)//注意代码鲁棒性 return 0; nleft=TreeDepth(pRoot->left); nright=TreeDepth(pRoot->right); if(nleft>nright) { i= nleft+1; } else { i=nright+1; } return i; } };
    最新回复(0)