php求二叉树的深度(1、二叉树就可以递归,因为结构和子结构太相似)(2、谋而后动,算法想清楚,很好过的) php求二叉树的深度(1、二叉树就可以递归,因为结构和子结构太相似)(2、谋而后动,算法想清楚,很好过的)

一、总结

1、二叉树就可以递归,因为结构和子结构太相似

2、谋而后动,算法想清楚,很好过的

二、php求二叉树的深度

题目描述:

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

三、代码

 1 <?php
 2 
 3 /*class TreeNode{
 4     var $val;
 5     var $left = NULL;
 6     var $right = NULL;
 7     function __construct($val){
 8         $this->val = $val;
 9     }
10 }*/
11 //算法:递归(树的深度=子树的深度+1):如果有孩子,孩子的深度是父亲的深度+1
12 function TreeDepth($pRoot)
13 {
14     if(!$pRoot) return 0;
15     if(!$pRoot->left&&!$pRoot->right) return 1;
16     if($pRoot->left) $left=TreeDepth($pRoot->left)+1;
17     if($pRoot->right) $right=TreeDepth($pRoot->right)+1;
18     //返回左右孩子深度和自身深度的最大值
19     return max($left,$right);
20 }