无锡网站改版,试用型网站怎么做,网站建设工作自查报告,江苏优化网站公司Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历#xff0c;边遍历边对比并更新当前路径上的最大值pathMax#xff0c;若当pathMax小于等于当前节点值#xff0c;则好节点的数目加一 复杂度
时间复杂度: O (… Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历边遍历边对比并更新当前路径上的最大值pathMax若当pathMax小于等于当前节点值则好节点的数目加一 复杂度
时间复杂度: O ( n ) O(n) O(n);其中 n n n为二叉树的节点个数 空间复杂度: O ( h ) O(h) O(h)其中 h h h为二叉树的高度 Code
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {int count 0;public int goodNodes(TreeNode root) {traverse(root, root.val);return count;}private void traverse(TreeNode root, int pathMax) {if (root null) {return;}// Find a good nodeif (pathMax root.val) {count;// Update the maximum value on the pathpathMax Math.max(root.val, pathMax);}traverse(root.left, pathMax);traverse(root.right, pathMax);}
}