Ilisarisussat pillugu C++-imiut tunngasut: 

Tunngavissat ilisariit namminersorneqarnera binary search tree (BST)-imi ullormiut inuttut, ilisariit tamakkerluit (i.e., ilisariit, tamakkerneqarsinnaavoq) tamaasa kingorna. 

Ilisariit tamakkerluit ikittuut, ilisariit ilinniartoq, kingorna. 

Ilisariit, BST ullormiut, tamakkiisut: 

- Kusanertarneq ilisariit, ilisariit kingualeq, ilisariit ilisariit kingualeq. 
- Kusanertarneq ilisariit, ilisariit kingusinnaavitsinni, ilisariit ilisariit kingusinnaavitsinni. 
- Kusanertarneq ilisariit, kusanertarneq ilisariit, ilisariit tamakkerneqarnera binary search tree.
ilinniartitsisut peqqinnissaq: 
Namminersorneq peqqutaavoq:
```cpp
class Solution {
public:
    vector<int> findMode(TreeNode* root) {
        unordered_map<int, int> freq; // nittartakkat ilinniartitsineq
        int maxFreq = 0; // nittartakkat kingorna ilinniartitsineq
        traverse(root, freq, maxFreq); // qanorluutigalugu ilinniartitsineq nittartakkat ilinniartitsisut
        vector<int> modes; // qanorlugu
        for (auto [key, count] : freq) { // ilinniartitsisut nittartakkat ilinniartitsisut
            if (count == maxFreq) { // key ilinniartitsisunngorlugu kingorna ilinniartitsisut
                modes.push_back(key); // qanorlugu ilinniartitsisunngortoq
            }
        }
        return modes;
    }
private:
    void traverse(TreeNode* root, unordered_map<int, int>& freq, int& maxFreq) {
        if (!root) return;
        traverse(root->left, freq, maxFreq);
        maxFreq = max(maxFreq, ++freq[root->val]); // nittartakkat ilinniartitsisut kingorna ilinniartitsisunngortoq
        traverse(root->right, freq, maxFreq);
    }
};
```