102. 二叉树的层序遍历
题目链接
102. 二叉树的层序遍历 - 力扣(LeetCode)
思路
这道题的正常解法(迭代法)二刷时能做出来,bugfree,但是递归法没有掌握。
本人题解
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {//二叉树的层序遍历使用队列这种数据结构来做的//首先定义一个队列用于遍历二叉树queue<TreeNode*> myQue;//其次定义一个二维数组用于返回遍历的结果vector<vector<int>> res;if (root == NULL) return res;myQue.push(root);while (!myQue.empty()) {//定义一个int类型的变量用于记录每一层中有多少个节点int size = myQue.size();vector<int> num;while (size--) {TreeNode* node = myQue.front();myQue.pop();if (node->left) myQue.push(node->left);if (node->right) myQue.push(node->right);num.push_back(node->val);}res.push_back(num);}return res;}
};
226. 翻转二叉树
题目链接
226. 翻转二叉树 - 力扣(LeetCode)
思路
这道题目的思路其实很简单,关于递归的解题思路自己也想到了,但是不自信 最后没做出来。。。
其实思路就可以理解为:将所有的节点的左右节点进行翻转一次就可以,所以这道题用层序遍历也是很简单。
101. 对称二叉树
思路
看了题解看懂