zoukankan      html  css  js  c++  java
  • Binary Tree Zigzag Level Order Traversal

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left
    to right, then right to left for the next level and alternate between).
    For example:
    Given binary tree {3,9,20,#,#,15,7},
      3
       /
       9 20
      /
      15 7
    return its zigzag level order traversal as:
    [
    [3],
    [20,9],
    [15,7]
    ]

    Solution: 1. Queue + reverse.
    2. Two stacks.
    3. Vector. Contributed by yinlinglin.

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     vector<vector<int> > zigzagLevelOrder(TreeNode *root) {
    13         vector<vector<int> > res;
    14         if(!root) return res;
    15         queue<TreeNode*> q;
    16         q.push(root);
    17         q.push(NULL); // NULL is used to gap between levels
    18         vector<int> level;
    19         bool left2right = true;
    20         while(true) {
    21             TreeNode* node = q.front(); q.pop();
    22             if(node) {
    23                 level.push_back(node->val);
    24                 if(node->left) q.push(node->left);
    25                 if(node->right) q.push(node->right);
    26             }
    27             else {
    28                 if(!left2right) {
    29                     reverse(level.begin(), level.end());
    30                 }
    31                 left2right = !left2right;
    32                 res.push_back(level);
    33                 level.clear();
    34                 if(q.empty()) break;
    35                 q.push(NULL);
    36             }
    37         }
    38     }
    39 };
  • 相关阅读:
    【bzoj2115】[Wc2011] Xor
    【bzoj2460】[BeiJing2011]元素
    P2300 合并神犇 DP
    P1041 传染病控制 深搜
    P1038 神经网络 图论
    树状数组模板
    送外卖 状压DP
    士兵守卫(同P2016 战略游戏) 树形DP
    P1171 售货员的难题 喻队状压 DP
    P2062 分队问题 DP
  • 原文地址:https://www.cnblogs.com/zhengjiankang/p/3665695.html
Copyright © 2011-2022 走看看