501. 二叉搜索树中的众数
难度:easy
一道很考细节的简单题
/*** 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 {public int[] findMode(TreeNode root) {Stack stack &#61; new Stack<>();List list &#61; new ArrayList<>();TreeNode pre &#61; null;TreeNode cur &#61; root;int count &#61; 0;int maxCount &#61; 0;while (cur !&#61; null || !stack.isEmpty()) {if (cur !&#61; null) {stack.push(cur);cur &#61; cur.left;} else {cur &#61; stack.pop();if (pre &#61;&#61; null || pre.val !&#61; cur.val) {count &#61; 1;} else if (pre.val &#61;&#61; cur.val){count&#43;&#43;;} if (count > maxCount) {maxCount &#61; count;// count &#61; 0;list.clear();list.add(cur.val);} else if (count &#61;&#61; maxCount) {list.add(cur.val);}pre &#61; cur;cur &#61; cur.right;}}int[] ans &#61; new int[list.size()];for (int i &#61; 0; i }