Binary Tree Paths -- leetcode

来源:互联网 发布:上瘾网络剧第二季泰国 编辑:程序博客网 时间:2024/04/29 19:16

Given a binary tree, return all root-to-leaf paths.

For example, given the following binary tree:

   1 /   \2     3 \  5

All root-to-leaf paths are:

["1->2->5", "1->3"]



基本思路

中序遍历。

维持一条路径,碰到叶子节点进行输出。


/** * 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<string> binaryTreePaths(TreeNode* root) {        vector<string> ans;        dfs(ans, root, "");        return ans;    }        void dfs(vector<string>& ans, TreeNode* root, string path) {        if (!root) return;        path += to_string(root->val);        if (!root->left && !root->right)            return ans.push_back(path);                path += "->";        dfs(ans, root->left, path);        dfs(ans, root->right, path);    }};


0 0
原创粉丝点击