觉得代码写的没有任何大括号、中文字符的问题,但是出现了红色波浪线
把代码一模一样粘贴到VS中,也会发生报错
空行全部删除后恢复正常
原因是,原版错误代码中,有一些看不见的特殊字符,即零宽空格。这些字符在大多数文本编辑器中不可见,但是会被编译器识别,并导致编译错误。
例如,在以下部分中:
//中
path.push_back(root->val);
//左
这两个看起来像是空行的地方实际上包含了零宽空格。它们在编译时会被认为是未知的类型名,从而引发错误。
我们需要删除这些零宽空格。因为这些字符在大多数编辑器中是不可见的,所以一种可能的解决方法是将代码复制到一个能显示这些字符的编辑器中(如某些在线编辑器),然后手动删除这些特殊字符。或者,也可以尝试将代码复制到一个纯文本编辑器中(如Notepad++),然后再复制回来,这可能也能消除这些特殊字符。