问题:
1.不要用考试的心态对待。
2.看的时候准备好几个优质答案,减少搜索难度。目前有4个优秀答案可供选择。
3.仔细分析问题。
正文:
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> ans;
string s;
// l: len
// s.size(): 字符串的长度
//
function<void(TreeNode*, int)> preorder =[&](TreeNode* node, int l){
if(!node) return;
s += (l > 0 ? "->": "") + to_string(node->val);
if(!node->left && !node->right){
ans.push_back(s);
}
preorder(node->left, s.size());
preorder(node->right, s.size());
// 清空s到只有根节点的值
while (s.size() != 1) s.pop_back();
};
preorder(root, 0);
return ans;
}
};
网友评论