题目:
题解:
class Solution {
public:vector<int> preorderTraversal(TreeNode *root) {vector<int> res;if (root == nullptr) {return res;}TreeNode *p1 = root, *p2 = nullptr;while (p1 != nullptr) {p2 = p1->left;if (p2 != nullptr) {while (p2->right != nullptr && p2->right != p1) {p2 = p2->right;}if (p2->right == nullptr) {res.emplace_back(p1->val);p2->right = p1;p1 = p1->left;continue;} else {p2->right = nullptr;}} else {res.emplace_back(p1->val);}p1 = p1->right;}return res;}
};