Number of Good Leaf Nodes Pairs LeetCode solution in C++
1class Solution {2public:3int k, ans = 0;4int countPairs(TreeNode *root, int distance) {5k = distance;6cp(root, 0);7return ans;8}910vector<int> cp(TreeNode *root, int level) {11vector<int> v1;12if (root == NULL) {13return v1;14}15if (root->left == NULL && root->right == NULL) {16v1.push_back(level);17return v1;18}1920v1 = cp(root->left, level + 1);21vector<int> v2 = cp(root->right, level + 1);22int a = v1.size();23int b = v2.size();2425for (int i = 0; i < a; i++) {26for (int j = 0; j < b; j++) {27if (abs(v1[i] + v2[j] - (2 * level)) <= k) {28ans++;29}30}31}3233int l = v2.size();34while (l--) {35v1.push_back(v2.back());36v2.pop_back();37}38return v1;39}40};