博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——面试题23:从上往下打印二叉树
阅读量:2254 次
发布时间:2019-05-09

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

剑指offer——面试题23:从上往下打印二叉树

Solution1:

典型的BFS算法!

思路一开始没想到,按照书上的思路写的答案。。。
注意:deque是双向队列,在头尾插入都很快!

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    vector
PrintFromTopToBottom(TreeNode* root) { vector
res; if(root == NULL) return res; deque
deque; deque.push_back(root); while(!deque.empty()){ int a = deque.front()->val; res.push_back(a); if(deque.front()->left != NULL) deque.push_back(deque.front()->left); if(deque.front()->right != NULL) deque.push_back(deque.front()->right); deque.pop_front(); } return res; }};

双向队列queue的常用函数

deque
que; //定义了一个整型的双端队列;que.front(); //返回容器que的第一个元素的引用。如果que为空,则该操作为空。que.pop_back(); //删除最后一个数据。que.pop_front(); //删除头部数据。que.push_back(elem); //在尾部加入一个数据。que.push_front(elem); //在头部插入一个数据。

Solution2:

2018年9月1日重做,利用队列做就行queue

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x):            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    vector
PrintFromTopToBottom(TreeNode* root) { vector
res; if (root == NULL) return res; queue
tree_queue; tree_queue.push(root); while (!tree_queue.empty()) { int temp = tree_queue.front()->val; res.push_back(temp); if (tree_queue.front()->left) tree_queue.push(tree_queue.front()->left); if (tree_queue.front()->right) tree_queue.push(tree_queue.front()->right); tree_queue.pop(); } return res; }};

队列queue的常用函数

queue
que; //定义了一个整型的双端队列que.front(); //返回容器que的头部元素que.pop(); //删除头部数据que.push(elem) //在尾部加入一个数据/*和栈stack的成员函数差不多*/

转载地址:http://bxhdb.baihongyu.com/

你可能感兴趣的文章
1022 Digital Library-PAT甲级
查看>>
1023 Have Fun with Numbers-PAT甲级
查看>>
1024 Palindromic Number-PAT甲级
查看>>
1025 PAT Ranking-PAT甲级
查看>>
剑指Offer_包含min函数的栈
查看>>
剑指Offer_二叉搜索树的后序遍历序列
查看>>
剑指Offer_二叉树中和为某一值的路径
查看>>
SPFA单源最短路算法
查看>>
差分约束系统
查看>>
C++ Maps
查看>>
C++ Priority Queues(优先队列)
查看>>
1083 List Grades-PAT甲级
查看>>
1081 Rational Sum -PAT甲级(分数运算)
查看>>
1075 PAT Judge-PAT甲级
查看>>
K8s概述:几种集群方案的对比
查看>>
爱了!阿里内部学习指南“Springboot全套成长笔记”,从精通原理到掌握项目
查看>>
java程序员:拜托别再问我Spring原理了!你问的这篇文章都有
查看>>
独角兽余额宝(Java现场面试48题):性能调优+索引+Mysql+缓存+HashMap+GC
查看>>
面试Java岗没找到合适的面试刷题资源?这份pdf够你甩别人几条街
查看>>
毕业三年,从小公司到大厂,先后四面阿里、小米、美团等,终于收到offer!
查看>>