更新时间:2022-08-29 09:32:23 来源:极悦 浏览710次
1.确定递归函数的参数和返回值
void traversal(TreeNode* node, vector<int>& vec)
node是当前处理节点,vec用来存储结果,无返回值
2.确定终止条件
if (node == NULL) return;
递归结束的标志是当前节点为空
3.确定单层递归的逻辑
前序遍历是中左右顺序,中序遍历是左中右顺序,后序遍历是左右中顺序。根据遍历顺序,即排列下列三行代码,保存结果。
vec.push_back(node->val);
traversal(node->left);
traversal(node->right);
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> result;
traversal(root, result);
return result;
}
void traversal(TreeNode* node, vector<int>& vec) {
if (node == NULL) return;
vec.push_back(node->val); //中
traversal(node->left); //左
traversal(node->right); //右
}
}
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> result;
traversal(root, result);
return result;
}
void traversal(TreeNode* node, vector<int>& vec) {
if (node == NULL) return;
traversal(node->left); //左
vec.push_back(node->val); //中
traversal(node->right); //右
}
}
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> result;
traversal(root, result);
return result;
}
void traversal(TreeNode* node, vector<int>& vec) {
if (node == NULL) return;
traversal(node->left); //左
traversal(node->right); //右
vec.push_back(node->val); //中
}
}
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习