博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode_Binary Tree Zigzag Level Order Traversal
阅读量:5078 次
发布时间:2019-06-12

本文共 1656 字,大约阅读时间需要 5 分钟。

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   7return its zigzag level order traversal as:[  [3],  [20,9],  [15,7]]

  和level order traversal 唯一的不同是,偶数行逆序输出,逆序可是使用stack来实现。其他的实现和level order实现大同小异

 

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector
> zigzagLevelOrder(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function vector
> result ; if(root ==NULL) return result; std::queue
q,p; std::stack
kit; vector
mResult; bool f = false ; q.push(root); while(!q.empty()){ mResult.clear(); if(f) { while(!q.empty()){ root = q.front(); q.pop(); kit.push(root->val); if(root->left) p.push(root->left); if(root->right) p.push(root->right); } while(!kit.empty()) { mResult.push_back(kit.top()); kit.pop(); } f = false; }else{ while(!q.empty()){ root = q.front(); q.pop(); mResult.push_back(root->val); if(root->left) p.push(root->left); if(root->right) p.push(root->right); } f = true ; } result.push_back(mResult); while(!p.empty()){ q.push(p.front()); p.pop(); } } return result; }};

 

转载于:https://www.cnblogs.com/graph/archive/2013/04/14/3019921.html

你可能感兴趣的文章
Spring框架最简单的定时任务调用
查看>>
Minify or format javascript file by web or notepad++
查看>>
eclipse html 打开方式
查看>>
java注解实例-反射生成sql
查看>>
Web前端工程师常去的15个技术网站
查看>>
【BZOJ4373】算术天才⑨与等差数列 [线段树]
查看>>
Oracle学习 第8天
查看>>
4.6下午 张涛听力3.14
查看>>
3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件...
查看>>
二分法查找
查看>>
Linux时间设置
查看>>
7-11
查看>>
vue---day02
查看>>
windows下使用mingw和msys编译GOTOBLAS和OpenBLAS
查看>>
sql server 函数详解(5)系统函数
查看>>
ACE在windows下的编译及配置(VS2010)
查看>>
简单选择排序(js版)
查看>>
深度学习Bible学习笔记:第二、三章 线性代数 概率与信息论
查看>>
Windows 7 x64环境下SDK Manager闪退的解决方法
查看>>
Assert(断言)
查看>>