501. Find Mode in Binary Search Tree
2017-09-07 15:42
525 查看
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],
(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],
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> findMode(TreeNode* root) { if (!root) return {}; vector<int> res; TreeNode *p = root, *pre = NULL; stack<TreeNode*> s; int mx = 0, cnt = 1;; while (!s.empty() || p) { while (p) { s.push(p); p = p->left; } p = s.top(); s.pop(); if (pre) { cnt = (p->val == pre->val) ? cnt + 1 : 1; } if (cnt >= mx) { if (cnt > mx) res.clear(); res.push_back(p->val); mx = cnt; } pre = p; p = p->right; } return res; } };
相关文章推荐
- 501. Find Mode in Binary Search Tree
- Leetcode 501 Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- LeetCode - 501 - Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree#2
- 501. Find Mode in Binary Search Tree
- leetcode-501-Find Mode in Binary Search Tree
- leetcode 501 Find Mode in Binary Search Tree
- 501. Find Mode in Binary Search Tree
- [LeetCode] Find Mode in Binary Search Tree 找二分搜索数的众数
- LeetCode Find Mode in Binary Search Tree
- Find Mode in Binary Search Tree