17
08/2015
[LeetCode] Binary Tree Paths
Binary Tree Paths
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"]
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
解题思路:
这道题题意是返回二叉树中所有从根到叶的路径。用递归法做比较方便。
/** * 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> result; helper(root, "", result); return result; } void helper(TreeNode* root, string item, vector<string>& result){ if(root==NULL){ return; } item = item+std::to_string(root->val); if(root->left!=NULL){ helper(root->left, item + "->", result); } if(root->right!=NULL){ helper(root->right, item + "->", result); } if(root->left==NULL&&root->right==NULL){ result.push_back(item); } } };
转载请注明:康瑞部落 » [LeetCode] Binary Tree Paths
0 条评论