LeetCode LCP 44.开幕式焰火

题目
给定一颗二叉树,节点值表示巨型火焰这一位置的的颜色种类。请计算巨型焰火有多少种不同的颜色。

思路
有多少种不同颜色就是计算这个二叉树中有多少个节点值不相同,此时我想到了Set集合。因为Set无法存储重复的元素,每次插入元素进行判断,插入成功,答案+1。

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    HashSet<Integer> set=new HashSet<>();
    int sum=0;
    public int numColor(TreeNode root) {
    
    
        dp(root);
        return sum;
    }
    public void dp(TreeNode root){
    
    
        if(root==null){
    
    
            return;
        }
        boolean result=set.add(root.val);
        if(result==true){
    
    
            sum++;
        }
        dp(root.left);
        dp(root.right);
    }
}

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_43744992/article/details/121757846