zoukankan      html  css  js  c++  java
  • 层次遍历二叉树

    1.层次遍历二叉树:

    从上往下的层次遍历:

    struct TreeNode

    {

    int val;

    TreeNode*pleft;

    TreeNode*pright;

    }

    void PrintNodeatLevel(TreeNode *root,int level)

    {

    if(!root)

    {

    return;

    }

    vector<TreeNode *>vec;

    vec.push_back(root);

    int cur=0;

    int last;

    while(cur<vec.size())

    {

    last=vec.size();

    while(cur<last)

    {

    cout<<vec[cur]->val<<' ';

    vec.push_back(root->left);

    vec.push_back(root->right);

    cur++;

    }

    cout<<endl;

    }

    }

    采用栈的写法:

    void printTopDown(BinaryTree* root)

    {

    deque<BinaryTree> dequeB;

    deque.push_back(root);

    while(!deque.empty())

    {

    BinaryTree*p=deque.front();

    cout<<p->value<<endl;

    if(p->left)

    dequeB.push_back(p->left);

    if(p->right)

    dequeB.push_back(p->right);

    }

    }

    从下往上访问:

  • 相关阅读:
    162. Find Peak Element
    475. Heaters
    字符串统计
    数据的交换输出
    偶数求和
    青年歌手大奖赛_评委会打分
    蟠桃记
    素数判定
    多项式求和
    出现Presentation Error的解决方法
  • 原文地址:https://www.cnblogs.com/mmziscoming/p/5811001.html
Copyright © 2011-2022 走看看