- 理论基础
- 递归遍历
- 迭代遍历
- 统一迭代
理论基础
需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义
文章讲解:代码随想录
递归遍历 (必须掌握)
二叉树的三种递归遍历掌握其规律后,其实很简单
题目链接/文章讲解/视频讲解:代码随想录
迭代遍历 (基础不好的录友,迭代法可以放过)
题目链接/文章讲解/视频讲解:代码随想录
统一迭代 (基础不好的录友,迭代法可以放过)
这是统一迭代法的写法, 如果学有余力,可以掌握一下
题目链接/文章讲解:代码随想录
二叉树节点的构造
struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) :val(x),left(NULL),right(NULL){}
};
递归遍历
void traversal(TreeNode* cur, vector<int>& vec) {if (cur == NULL) return;vec.push_back(cur->val);traversal(cur->left, vec);traversal(cur->right, vec);
}
接受二叉树遍历结果val
vector<int> preorderTraversal(TreeNode* root) {vector<int> result;traversal(root, result);return result;
}
前/中/后序遍历同理
迭代遍历