casyup.me@outlook.com

0%

other/aQuestionAboutStaticKeyword

一个关于 static 的问题

2019年4月22日19:42:18

日常的一天, 做做 leetcode, 但是突然发现了关于 leetcode 代码优化的问题

题目大概是要你中序遍历树

(看到题目的时候愣了一下, 怀疑自己是不是眼花了, 直到看到了 Follow up… emmm, 好吧, 迭代)

总之我先用递归试了一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* 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> inorderTraversal(TreeNode* root) {
static vector<int> ret;

if (!root) return ret;

if (root->left)
inorderTraversal(root->left);

ret.push_back(root->val);

if (root->right)
inorderTraversal(root->right);

return ret;
}
};

但是它总是给我报这个错

这是没有理由的! 我代码中不可能无中生有

我怀疑这是 leetcode 平台对于用户所做的一种优化

而这种优化与我使用 static 关键字相冲突