【LeetCode257】【DFS】每日一题day5

tech2025-03-25  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: void search(TreeNode *t, vector<string> &ans, string s) { if (t == NULL) return; s += to_string(t->val); if (t->left == NULL && t->right == NULL) { ans.push_back(s); return; } if (t->left != NULL) { s += "->"; search(t->left, ans, s); while (s[s.size() - 1] != '>') { s.pop_back(); } s.pop_back(); s.pop_back(); } if (t->right != NULL) { s += "->"; search(t->right, ans, s); while (s[s.size() - 1] != '>') { s.pop_back(); } s.pop_back(); s.pop_back(); } } vector<string> binaryTreePaths(TreeNode* root) { vector<string> ans; string s; search(root, ans, s); return ans; } };

昨天刚学了一点树的知识今天就用到了嘿嘿 原来前中后序遍历只是dfs的三种不同策略_(:з」∠)_ 需要注意的地方: 1、vector需要穿地址给函数,string不用 2、int转string可以用to_string函数,string转int才能 - ‘0’ 3、搜左边和右边的时候写的有点啰嗦了,但是还蛮快的_(:з」∠)_

最新回复(0)