博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】102. Binary Tree Level Order Traversal 水平遍历二叉树
阅读量:7072 次
发布时间:2019-06-28

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

1. 题目

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:

Given binary tree [3,9,20,null,null,15,7],

3

/ \

9 20

/  \

15 7

return its level order traversal as:
[
[3],
[9,20],
[15,7]
]

2. 思路

用FIFO队列来构建水平遍历。用NULL来分割不同的层。

3. 代码

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector
> levelOrder(TreeNode* root) { vector
> ret; if (root == NULL) { return ret; } vector
level; deque
d; d.push_back(root); d.push_back(NULL); while (!d.empty()) { TreeNode* n = d.front(); d.pop_front(); if (n == NULL) { if (level.size() != 0) { ret.push_back(level); level.clear(); } if (d.empty()) { return ret; } else { d.push_back(NULL); } } else { if (n->left != NULL) { d.push_back(n->left); } if (n->right != NULL) { d.push_back(n->right); } level.push_back(n->val); } } return ret; }};

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

你可能感兴趣的文章
Loadrunner如何添加负载机
查看>>
Vue中组件之间的通信方式
查看>>
数据库并行读取和写入(Python实现)
查看>>
Spring学习(15)--- 基于Java类的配置Bean 之 @Bean & @Scope 注解
查看>>
英语写作-----赖世雄<<突破英语写作关>>笔记
查看>>
MySQL批量导出以某数字或字母开头的表
查看>>
java变长参数
查看>>
状态和面向对象编程——2.状态介绍
查看>>
html -- 实体
查看>>
SVN中的check out与export的区别
查看>>
如何重新注册VMware Update Manager(VUM)至vCenter Server中
查看>>
hdu1754
查看>>
vue前端页面跳转参数传递及存储
查看>>
使用Google Analytics跟踪下载等事件
查看>>
Netty服务器连接池管理设计思路
查看>>
5.多个Storyboard切换
查看>>
Vue CLI 3开发中屏蔽烦人的EsLint错误
查看>>
批量分发管理三种解决方案案例视频分享
查看>>
Scrum方法论(四)
查看>>
处理windows 2008x64平台exchange 2010 sp1打完系统补丁后,控制台无法打开
查看>>