/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int x) { val = x; }
* }
*/
public class Solution {
Stack<TreeNode> S = new Stack<TreeNode>();
private void postNode(TreeNode node)
{
if (node != null)
{
S.Push(node);//先序遍历,遍历所有节点
if (node.left != null)
{
postNode(node.left);
}
if (node.right != null)
{
postNode(node.right);
}
}
} private int sumSubTree(TreeNode node)
{
if (node != null)
{
var sum = node.val;
if (node.left != null)
{
sum += sumSubTree(node.left);
}
if (node.right != null)
{
sum += sumSubTree(node.right);
}
return sum;
}
else
{
return ;
} } public int[] FindFrequentTreeSum(TreeNode root)
{
if (root == null)
{
return new int[] { };
}
postNode(root);
var list = S.ToList();
Dictionary<int, int> dic = new Dictionary<int, int>();//key是sum值,value是次数
foreach (var l in list)
{
var sum = sumSubTree(l);
if (!dic.ContainsKey(sum))
{
dic.Add(sum, );
}
else
{
dic[sum]++;
}
} var result = dic.OrderByDescending(x => x.Value).ToList(); var max = int.MinValue;
var arylist = new List<int>();
foreach (var r in result)
{
var count = r.Value;
var cur = r.Key;
if (count >= max)
{
max = count;
arylist.Add(cur);
}
else
{
break;
}
} var ary = arylist.ToArray();
return ary;
}
}

https://leetcode.com/problems/most-frequent-subtree-sum/#/description

leetcode508的更多相关文章

  1. [Swift]LeetCode508. 出现次数最多的子树元素和 | Most Frequent Subtree Sum

    Given the root of a tree, you are asked to find the most frequent subtree sum. The subtree sum of a ...

随机推荐

  1. git 第一次提交至仓库

    可以打开Idea 的 terminal直接进行命令操作 1.git init 2.git add src(这个src意思是添加src目录下的所有文件,有些会说add ..    那就是提交工程下的所有 ...

  2. 实用符号Alt+小键盘快输

    键盘输入:①Word.写字板.QQ2011等,Alt+Unicode之十进制数:②记事簿.网页框.浏览器之地址栏.TM2009等,Alt+GBK之十进制数. 字符 Unicode 十进制数 GBK ...

  3. 《DSP using MATLAB》示例Example 9.5

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  4. 在线编辑器KindEditor的使用

    1.官网下载:点击进入 2.解压后目录说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── attached 空文件夹,放置关联文件attached ├── examp ...

  5. {Reship}{Socket}C#简单应用

    This article come frome here ======================================================================= ...

  6. 【DUBBO】Dubbo原理解析-服务发布

    转载:http://blog.csdn.net/quhongwei_zhanqiu/article/details/41651205 服务发布方在spring的配置文件中配置如下: <bean ...

  7. ballerina 学习一 基本项目安装试用

    ballerina介绍    建议参考这篇文章: https://mp.weixin.qq.com/s/DqdlOhquqMaGOJf26lANPw   1. 安装 直接下载对应操作系统的二进制文件即 ...

  8. 国外牛人的五个Kubernetes学习建议

    现在云中存在的许多系统都是建立在基于虚拟机,虚拟磁盘等物理概念的抽象基础之上的,”Heptio的联合创始人兼首席技术官兼Kubernetes在Google的原始开发人员之一的Joe Beda说. “K ...

  9. PAT1034. Head of a Gang ——离散化+并查集

    题意:成员A与成员B通话 ,成员B与成员C通话,则 ABC即为一个团伙,一共有若干个团伙,每个团伙的人数大于2且相互通话时间超过一定值即为黑帮,每个黑帮伙里有一个BOSS,boss是与各个成员打电话最 ...

  10. 解决Intel SSD 330i 240G在Windows 8启动慢的问题

    笔者半年前更新了一下老迈的Thinkpad T410i笔记本电脑,在美国亚马逊海购了Intel SSD 330i 240G.(PS:购入价USD 129.99 ,现在最新的335i 240G差不多要U ...