Topic:
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 is:
["1->2->5", "1->3"]
Ideas:
Pre-order recursion can be.
Code Listing 1:
/** * 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 ; if (root = NULL) return result; string path; Binarytreepaths (root, result, path); return result; } void Binarytreepaths (treenode* root, vector<string> &result, string path) {if (root = = NULL) Return if (Path.empty ()) path + = to_string (root->val); else {path + = "; Path + = to_string (root->val); } if (root->left = = NULL && Root->right = = null) {result.push_back (path); Return } binarytreepaths (Root->left, result, path); Binarytreepaths (Root->right, result , path); }};
Code Listing 2:
/** * 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; if (root = NULL) return result; string path; Binarytreepaths (root, result, path); return result; } void Binarytreepaths (treenode* root, vector<string> &result, string path) { if (root = NULL) return; if (Root->left = = NULL && Root->right = = null) { result.push_back (path + to_string (root->val )); return; } Binarytreepaths (root->left, result, path + to_string (root->val) + "-"); Binarytreepaths (root->right, result, path + to_string (root->val) + "-"); }};
Copyright NOTICE: Reprint please indicate the source.
Leetcode OJ binary Tree Paths (binary path)