本文主要是介绍2021-01-28(501. 二叉搜索树中的众数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
官方说的好,一棵 BST 的中序遍历序列是一个非递减的有序序列。
还有个细节:int[] arr = new int[list.size()];可以动态的创建正确长度的数组来返回。即先把结果挨个放到list中,再移到这个刚好长度的数组中。
还有在Java中:可以if(x==temp),即使temp没有初始化为任何值。
上网巩固了一下原来是:在局部变量里,必须初始化变量,而作为全局变量,系统会默认初始化这些变量,如int型初始化为0。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {List<Integer> tr=new ArrayList<Integer>();int count=0,maxcount=0,temp;public int[] findMode(TreeNode root) {dfs(root);int[] r=new int[tr.size()];for(int i=0;i<tr.size();i++){r[i]=tr.get(i);}return r;}public void dfs(TreeNode root){if(root==null){return;}dfs(root.left);find(root.val);dfs(root.right);}public void find(int x){if(x==temp){count++;}else{count=1;temp=x;}if(count==maxcount){tr.add(temp);}else if(count>maxcount){maxcount=count;tr.clear();tr.add(temp);}}
}
这篇关于2021-01-28(501. 二叉搜索树中的众数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!