今天开始不跳题了,从头开始吧上面的二叉树再刷个十几二十道的看看,然后今天是第一道最简单的二叉树中序遍历二叉树的中序遍历
关于二叉树的中序遍历我个人习惯的还是递归,因为递归看起来简单容易理解写的还少
但是时间复杂度为O(n),空间复杂度为O(n),看完题解以后我发现迭代和一种Morris 遍历算法,他能够将它能将非递归的中序遍历空间复杂度降为 O(1)。
但是我还没太研究明白emmmm……这个我明下次再说,然后下面贴一下通过代码:
class Solution {
public:
void inorder(TreeNode* root, vector<int>&res){
if(!root) return;
inorder(root->left, res);
res.push_back(root->val);
inorder(root->right, res);
}
vector<int> inorderTraversal(TreeNode* root) {
vector<int> res;
inorder(root,res);
return res;
}
};
网友评论