二叉树part01
既然刷到了,那就简单复习一下二叉树的递归和迭代遍历吧
144.二叉树的前序遍历
145.二叉树的后序遍历
146.二叉树的中序遍历
上面三题的递归和迭代遍历都过于简单,这里写一下统一迭代中的前序遍历吧:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
if(root==nullptr) return result;
stack<TreeNode *> st;
st.push(root);
while(!st.empty()){
TreeNode *cur=st.top();
st.pop();
if(cur!=nullptr){
if(cur->right) st.push(cur->right);
if(cur->left) st.push(cur->left);
st.push(cur);
st.push(nullptr);
}else{
result.push_back(st.top()->val);
st.pop();
}
}
return result;
}