博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 102. 二叉树的层次遍历
阅读量:4593 次
发布时间:2019-06-09

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

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:

给定二叉树: [3,9,20,null,null,15,7],

3

/ \
9 20
/ \
15 7
返回其层次遍历结果:

[

[3],
[9,20],
[15,7]
]

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal

递归:

/** * 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:    void process(TreeNode* root,int depth,vector
> &ans) { if(depth >= ans.size()) ans.push_back(vector
{}); ans[depth].push_back(root->val); if(root->left) process(root->left,depth+1,ans); if(root->right) process(root->right,depth+1,ans); } vector
> levelOrder(TreeNode* root) { vector
> ans; if(root) process(root,0,ans); return ans; } };

 

非递归:

1 /** 2  * Definition for a binary tree node. 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
> levelOrder(TreeNode* root) {13 14 vector
> ans;15 if(!root) return ans;16 17 queue
Q;18 TreeNode* temp;19 Q.push(root);20 while (!Q.empty()){21 vector
ress;22 int n = Q.size();23 for(int i = 0; i < n; i++) {24 temp = Q.front();25 ress.push_back(temp->val);26 Q.pop();27 if(temp->left)28 Q.push(temp->left);29 if(temp->right)30 Q.push(temp->right);31 }32 ans.push_back(ress);33 }34 return ans;35 }36 };

 

转载于:https://www.cnblogs.com/jj81/p/11485705.html

你可能感兴趣的文章
loj10035. 「一本通 2.1 练习 1」Power Strings
查看>>
%s的用法
查看>>
调用底层不能直接访问的类和方法
查看>>
清理缓存的方法 #DF
查看>>
JAVA array,map 转 json 字符串
查看>>
2017-12-27练习
查看>>
NET设计规范(二) 命名规范
查看>>
VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2
查看>>
SSL延迟
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>