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 }