zoukankan      html  css  js  c++  java
  • 二叉树非递归遍历方法小结

    二叉树的遍历是面试中经常考察的,其实前中后三种顺序的遍历都大同小异,自己模拟两个栈用笔画画我相信是不难写出代码的。现罗列如下,均是自己所写已通过leetcode。

     1 class Solution {
     2 public:
     3     vector<int> preorderTraversal(TreeNode *root) {
     4         vector<int> out;
     5         stack<TreeNode*> s;
     6         s.push(root);
     7         while(!s.empty() && root){
     8             TreeNode *node = s.top();
     9             out.push_back(node->val);
    10             s.pop();
    11             if(node->right) s.push(node->right);
    12             if(node->left)  s.push(node->left);
    13         }
    14         return out;
    15         
    16     
    17     }
    18     vector<int> inorderTraversal(TreeNode *root) {
    19         stack<TreeNode *> s;
    20         vector<int> out;
    21         TreeNode *node = root;
    22         bool done = false;
    23         while(!done){
    24             if(node){
    25                 s.push(node);
    26                 node = node->left;
    27             }else {
    28                 if(s.empty()) done = true;
    29                 else{
    30                     node = s.top();
    31                     s.pop();
    32                     out.push_back(node->val);
    33                     node = node->right;
    34                 }
    35             }
    36         }
    37         return out;
    38     }
    39     vector<int> postorderTraversal(TreeNode *root) {
    40        vector<int> out;
    41        stack<TreeNode*> s;
    42        TreeNode* node = root;
    43        s.push(node);
    44        while(!s.empty()&&node){
    45            node = s.top();
    46            out.push_back(node->val);
    47            s.pop();
    48            if(node->left) s.push(node->left);
    49            if(node->right)s.push(node->right);
    50        }
    51        reverse(out.begin(),out.end());
    52        return out;
    53     }
    54 };
  • 相关阅读:
    数据库作业
    数据库知识点⑤
    数据库知识点④
    一个值得纪念的日子
    设计模式之单件模式
    HDU 5441 Travel
    HDU 5483 Nux Walpurgis
    Markdown 测试
    HDU 3271 SNIBB
    HDU 5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/134feilei/p/3850203.html
Copyright © 2011-2022 走看看