迭代遍历二叉树
本文最后更新于624 天前,其中的信息可能已经过时,如有错误请发送邮件到tomding1065@gmail.com


题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html

CPP

#include<iostream>
#include<vector>
#include<stack>
#include<algorithm>

using namespace std;

struct TreeNode
{
   int val;
   TreeNode *left;
   TreeNode *right;

   TreeNode(int x):val(x),left(NULL),right(NULL){}
};

class Solution
{

public:
    vector<int> preorderTraversal(TreeNode* root){
        vector<int>res;
        stack<TreeNode*> st;

        if(root == NULL) return res;
        st.push(root);
        if(!st.empty()){
            TreeNode *node = st.top();
            st.pop();
            res.push_back(node->val);
            if(node->right)st.push(node->right);
            if(node->left)st.push(node->left);
        }
        return res;
    }
    
    vector<int> inorderTraversal(TreeNode* root){
        vector<int>res;
        stack<TreeNode*>st;
        
        TreeNode *cur = root;
        while(cur != NULL || !st.empty()){
            if(cur != NULL){
                st.push(cur);
                cur = cur->left;
            }else{
                TreeNode *node = st.top();
                st.pop();
                res.push_back(node->val);
                cur = cur->right;
            }
        }
        return res;
    }
    
    
    vector<int> postorderTraversal(TreeNode* root){
        vector<int>res;
        stack<TreeNode*>st;
        if(root == NULL)return res;
        st.push(root);
        while(!st.empty()){
            TreeNode *node = st.top();
            st.pop();
            res.push_back(node->val);
            if(node->left)st.push(node->left);
            if(node->right)st.push(node->right);
            
        }
        reverse(res.begin(),res.end());
        
        return res;
    }
    
};




文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Cream_dpl