public static int[] FindMode(LeetCode501TreeNode root) { List <int> modes = new List <int>(); Helper(root, modes); return(modes.ToArray()); }
private static void Helper(LeetCode501TreeNode root, List <int> modes) { if (root == null) { return; } Helper(root.left, modes); if (preValue != null) { if (preValue == root.val) { counter++; } else { counter = 1; } } if (counter > max) { counter = max; modes.Clear(); modes.Add(root.val); } else if (counter == max) { modes.Add(root.val); } Helper(root.right, modes); }
public LeetCode501TreeNode(int val = 0, LeetCode501TreeNode left = null, LeetCode501TreeNode right = null) { this.val = val; this.left = left; this.right = right; }