LeetCode 257. 二叉树的所有路径 (回溯)

tech2025-02-17  6

二叉树的所有路径 分析一下时间复杂度:每个点都只会遍历一次,时间复杂度: O ( n ) O(n) O(n)。 在最坏情况下,是一个满二叉树,时间复杂度: O ( n ∗ l o g ( n ) ) O(n*log(n)) O(nlog(n))

/** * 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<int> vis; vector<string> ans; vector<string> binaryTreePaths(TreeNode* root) { if(!root) return ans; dfs(root); return ans; } void dfs(TreeNode* node){ if(!node->left && !node->right){ string s; for(int x:vis){ s += to_string(x); s += "->"; } s += to_string(node->val); ans.push_back(s); return; } vis.push_back(node->val); if(node->left) dfs(node->left); if(node->right) dfs(node->right); vis.pop_back(); } };
最新回复(0)