求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。
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.
<?php
class Node{
public $left = null;
public $right = null;
public $val;
public function __construct($val) {
$this->val = $val;
}
}
function maxDepth($node) {
$max = 0;
$level = 1;
getDepth($node, $level, $max);
return $max;
}
function getDepth($node, $level, &$max) {
if ($node == null) {
return;
}
if ($level > $max) {
$max = $level;
}
getDepth($node->left, $level + 1, $max);
getDepth($node->right, $level + 1, $max);
}
$node1 = new Node(3);
$node2 = new Node(9);
$node3 = new Node(10);
$node4 = new Node(15);
$node5 = new Node(7);
$node1->left = $node2;
$node1->right = $node3;
$node3->left = $node4;
$node4->right = $node5;
$maxDepth = maxDepth($node1);
print $maxDepth;