[leetcode][tree] Binary Tree Paths

题目:

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

For example, given the following binary tree:

1 / \23 \ 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) {} * }; */ #include <stdlib.h>class Solution {public:vector<string> binaryTreePaths(TreeNode* root) {vector<string> res;if(root == NULL) return res;string onePath;binaryTreePathsCore(root, onePath, res);return res;}private:char *itoa(int x, char *str){if(x == 0){str[0] = '0';str[1] = '\0';return str;}int i = 0;if(x < 0){x = -x;str[i++] = '-';}int start = i;while(x > 0){str[i++] = x%10+'0';x /= 10;}str[i] = '\0';reverse(str+start, str+i);return str;}void binaryTreePathsCore(TreeNode *root, string onePath, vector<string> &res){if(root == NULL) return;char str[24];itoa(root->val, str);onePath += str;if(root->left == NULL && root->right == NULL){res.push_back(onePath);return;}onePath += "->";if(root->left != NULL) binaryTreePathsCore(root->left, onePath, res);if(root->right != NULL) binaryTreePathsCore(root->right, onePath, res);}};

版权声明:本文为博主原创文章,未经博主允许不得转载。

,有的旅行时为了寻找逝去的年华,重温青春的惆怅。

[leetcode][tree] Binary Tree Paths

相关文章:

你感兴趣的文章:

标签云: