算法训练day14 二叉树递归遍历、迭代遍历、统一遍历
递归遍历
-
先序遍历
-
class Solution { public: void traversal(TreeNode *cur, vector<int> &result) { if (cur == nullptr) return; result.push_back(cur->val); traversal(cur->left, result); traversal(cur->right, result); } vector<int> preorderTraversal(TreeNode *root) { vector<int> result; traversal(root, result); return result; } };
-
中序遍历
-
class Solution { public: void traversal(TreeNode *cur, vector<int> &result) { if (cur == nullptr) return; traversal(cur->left, result); result.push_back(cur->val); traversal(cur->right, result); } vector<int> inorderTraversal(TreeNode *root) { vector<int> result; traversal(root, result); return result; } };
-
后序遍历
-
class Solution { public: void traversal(TreeNode *cur, vector<int> &vec) { if (cur == NULL) return; traversal(cur->left, vec); traversal(cur->right, vec); vec.push_back(cur->val); } vector<int> postorderTraversal(TreeNode *root) { vector<int> result; traversal(root, result); return result; } };