代码随想录算法训练营第二十一天| 216.组合总和III 17.电话号码的字母组合

发布时间 2023-07-01 10:06:08作者: 博二爷

216.组合总和III  

思路:

很像上一个组合类型的题目,唯一不同的就是自己写一个sum

代码:

 1 void convertBST_cur(TreeNode* root, vector<TreeNode*>& nodes)
 2 {
 3     if (!root) return ;
 4     if (root->left) convertBST_cur(root->left, nodes);
 5     nodes.push_back(root);
 6     if (root->right) convertBST_cur(root->right, nodes);
 7 }
 8 TreeNode* convertBST(TreeNode* root) {
 9     if (!root) return nullptr;
10 
11     stack<TreeNode*> selected;
12     selected.push(root);
13     vector<TreeNode*> nodes;
14     convertBST_cur(root, nodes);
15     
16     //如果更改它们的值,那么就会导致链接出现了问题
17     for (int i = nodes.size() - 2; i >= 0; i--)
18     {
19         nodes[i]->val += nodes[i + 1]->val;
20     }
21 
22     return root;
23 }