day14 - 二叉树part01
144. 二叉树的前序遍历
详解
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: void search(TreeNode* node, vector<int>& result){ if(!node) return; result.push_back(node->val); search(node->left, result); search(node->right, result); } vector<int> preorderTraversal(TreeNode* root) { vector<int> result; search(root, result); return result; } };
145. 二叉树的后序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: void search(TreeNode* node, vector<int>& result){ if(!node) return; search(node->left, result); search(node->right, result); result.push_back(node->val); } vector<int> postorderTraversal(TreeNode* root) { vector<int> result; search(root, result); return result; } };
94. 二叉树的中序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: void search(TreeNode* node, vector<int>& result){ if(!node) return; search(node->left, result); result.push_back(node->val); search(node->right, result); } vector<int> inorderTraversal(TreeNode* root) { vector<int> result; search(root, result); return result; } };