leetcode 二叉树安装层次进行遍历

问题描述:

对于二叉树root按照level进行访问,其中可以有几个变种:

1.  每层从左到右

2.  每层从右到左、

3. 层次之间zig-zag order。

问题分析:

层次遍历借助于队列queue, 以NULL作为每层结束的标志。

伪代码:

struct TreeNode { int val; TreeNode *left, *right; };
TreeNode *root;
queue que;
que.push_back(root); que.push_back(NULL);
while (!que.isempty())
{
   cur = que.front(); que.pop_front();
    if (!cur && !que.isempty()) /* fix bug here*/ 
   { 
        que.push_back(NULL);   /* */
    }
    else 
   { 
       visit(cur); 
      if (cur->left)    que.push_back(cur->left);
      if (cur->right)  que.push_back(cur->right);
   }
}



你可能感兴趣的:(二叉树)