[leetcode]501. Find Mode in Binary Search Tree
来源:互联网 发布:企业网站推广优化 编辑:程序博客网 时间:2024/06/02 05:15
题目链接:https://leetcode.com/problems/find-mode-in-binary-search-tree/#/description
Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST.
Assume a BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than or equal to the node's key.
- The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
- Both the left and right subtrees must also be binary search trees.
For example:
Given BST [1,null,2,2]
,
1 \ 2 / 2
return [2]
.
Note: If a tree has more than one mode, you can return them in any order.
Follow up: Could you do that without using any extra space? (Assume that the implicit stack space incurred due to recursion does not count).
class Solution {public: vector<int> findMode(TreeNode* root) { put_map(root); int maxtime=0; vector<int> res; //sort(m.begin(),m.end(),[&](pair<int,int> a,pair<int,int>b){return a.second<b.second;}); for(map<int,int>::iterator it=m.begin();it!=m.end();it++) { if(it->second>maxtime) { res.clear(); maxtime=it->second; res.push_back(it->first); } else if(it->second==maxtime) { res.push_back(it->first); } } return res; } void put_map(TreeNode* root) { if(!root) return; if(root->left) put_map(root->left); m[root->val]+=1; if(root->right) put_map(root->right); };private: map<int,int> m;};
class Solution {public: vector<int> findMode(TreeNode* root) { put_map(root); return v; } void put_map(TreeNode* root) { if(!root) return; if(root->left) put_map(root->left); currCount++; if(root->val!=currValue) { currValue=root->val; currCount=1; } if(currCount>maxCount) { maxCount=currCount; v.clear(); v.push_back(root->val); } else if(currCount==maxCount) { v.push_back(root->val); } if(root->right) put_map(root->right); };private: vector<int> v; int maxCount=0; int currCount=0; int currValue=0;};
阅读全文
0 0
- [Leetcode] Binary tree -- 501. Find Mode in Binary Search Tree
- LeetCode 501. Find Mode in Binary Search Tree
- leetcode 501. Find Mode in Binary Search Tree
- LeetCode-501. Find Mode in Binary Search Tree
- Leetcode——501. Find Mode in Binary Search Tree
- LeetCode 501.Find Mode in Binary Search Tree
- LeetCode 501. Find Mode in Binary Search Tree
- [LeetCode] 501. Find Mode in Binary Search Tree 解题报告
- [LeetCode]501. Find Mode in Binary Search Tree
- [leetcode: Python]501. Find Mode in Binary Search Tree
- [leetcode]: 501. Find Mode in Binary Search Tree
- leetcode 501. Find Mode in Binary Search Tree
- [LeetCode] 501. Find Mode in Binary Search Tree
- [leetcode]501. Find Mode in Binary Search Tree
- LeetCode-501. Find Mode in Binary Search Tree(Java)
- leetcode 501. Find Mode in Binary Search Tree
- leetcode 501. Find Mode in Binary Search Tree
- [Leetcode] 501. Find Mode in Binary Search Tree 解题报告
- 美化CodeBlocks的主题和字体
- 【JavaScript】设置内容+
- 安装tensorflow注意几点
- DFS_棋盘问题
- x86内存框架简介
- [leetcode]501. Find Mode in Binary Search Tree
- Sieve Prime 素数筛法
- 用gradle添加依赖时怎么确定版本号
- hadoop学习笔记--9.HBase基础
- JavaScript学习(五)
- java线程组
- Linux学习——shell编程之正则表达式和字符处理命令
- V分身
- 20170716Windows11_3_可等待计时器对象