257. 二叉树的所有路径


?做题思路or感想:

  • 直接遍历二叉树,然后用一个字符串记录一条遍历路径,然后遍历到叶子节点的时候就把字符串加入result里就好了

  • class Solution {
    public:
        vector result; //存答案
        void dfs(TreeNode* cur, string str) {
            if (!cur->left && !cur->right) {	//判断是否是叶子节点
                result.push_back(str);
                return;
            }
            //分别向左右节点遍历
            if (cur->left)dfs(cur->left, str + "->" + to_string(cur->left->val));
            if (cur->right)dfs(cur->right, str + "->" + to_string(cur->right->val));
        }
        vector binaryTreePaths(TreeNode* root) {
            if (root == nullptr)return result;
            dfs(root, to_string(root->val));
            return result;
        }
    };