Open yankewei opened 1 year ago
很简单的深度优先搜索,每次遍历到一个节点,如果该节点的值大于等于这条路线的最大值,那就就返回
/**
* Definition for a binary tree node.
* class TreeNode {
* public $val = null;
* public $left = null;
* public $right = null;
* function __construct($val = 0, $left = null, $right = null) {
* $this->val = $val;
* $this->left = $left;
* $this->right = $right;
* }
* }
*/
class Solution {
/**
* @param TreeNode $root
* @return Integer
*/
function goodNodes($root) {
return $this->dfs(PHP_INT_MIN, $root);
}
function dfs($max_val, $root) {
if ($root === null) {
return 0;
}
$ret = 0;
if ($root->val >= $max_val) {
$ret += 1;
$max_val = $root->val;
}
$ret += $this->dfs($max_val, $root->left) + $this->dfs($max_val, $root->right);
return $ret;
}
}
给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。
「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。
示例 1:
示例 2:
示例 3:
提示: