5.1.4—二叉树的遍历—Binary Tree Level Order Traversal
来源:互联网 发布:浪潮软件重大新闻 编辑:程序博客网 时间:2024/05/16 20:21
描述
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from le to right, level by
level).
For example: Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from le to right, level by
level).
For example: Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
#include "BinaryTree.h"#include <stack>#include<queue>#include<vector>using namespace std;//===二叉树的层次遍历vector<vector<int>> LevelTraversal(BinaryTreeNode *proot){queue<BinaryTreeNode*>temp;vector<int> tempres;//记录所有数字vector<int> num;//记录每一层的个数temp.push(proot);int Initial = 1;num.push_back(Initial);while (!temp.empty()){int cnt = 0;for (int i = 0; i < Initial; i++){BinaryTreeNode *p = temp.front();tempres.push_back(p->m_nValue);temp.pop();if (p->m_pLeft){temp.push(p->m_pLeft);cnt++;}if (p->m_pRight){temp.push(p->m_pRight);cnt++;}}Initial = cnt;if (Initial!=0)num.push_back(Initial);}//====================vector<vector<int>> res;int cnt = 0;for (int i = 0; i < num.size();i++){vector<int> cahe;for (int j =cnt; j < cnt+num[i]; j++)cahe.push_back(tempres[j]);cnt += num[i];res.push_back(cahe);}return res;}// ====================测试代码====================// 8// 6 10// 5 7 9 11int main(){BinaryTreeNode* pNode8 = CreateBinaryTreeNode(8);BinaryTreeNode* pNode6 = CreateBinaryTreeNode(6);BinaryTreeNode* pNode10 = CreateBinaryTreeNode(10);BinaryTreeNode* pNode5 = CreateBinaryTreeNode(5);BinaryTreeNode* pNode7 = CreateBinaryTreeNode(7);BinaryTreeNode* pNode9 = CreateBinaryTreeNode(9);BinaryTreeNode* pNode11 = CreateBinaryTreeNode(11);ConnectTreeNodes(pNode8, pNode6, pNode10);ConnectTreeNodes(pNode6, pNode5, pNode7);ConnectTreeNodes(pNode10, pNode9, pNode11);//===//PrintTree(pNode8);//===vector<vector<int>> res = LevelTraversal(pNode8);for (int i = 0; i < res.size(); i++){for (int j = 0; j < res[i].size(); j++)cout << res[i][j] << " ";cout << endl;}DestroyTree(pNode8);}
阅读全文
0 0
- 5.1.4—二叉树的遍历—Binary Tree Level Order Traversal
- 5.1.5—二叉树的遍历—Binary Tree Level Order Traversal II
- 5.1.6—二叉树的遍历—Binary Tree Zigzag Level Order Traversal
- Binary Tree Level Order Traversal 分层遍历二叉树@LeetCode
- 【二叉树层次遍历】Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal, 二叉树层级遍历
- Binary Tree Zigzag Level Order Traversal 之字形遍历二叉树
- Leetcode Binary Tree Level Order Traversal 二叉树分层遍历
- Binary Tree Level Order Traversal 二叉树的层序遍历
- Binary Tree Level Order Traversal II 二叉树的反向层序遍历
- 二叉树的层序遍历 改进版 Binary Tree Level Order Traversal II
- LeetCode(Binary Tree Level Order Traversal, 2,Zigzag)二叉树的层次遍历
- LeetCode OJ 之 Binary Tree Level Order Traversal (二叉树的层次遍历)
- LeetCode OJ 之 Binary Tree Level Order Traversal II (二叉树的层次遍历-二)
- LeetCode OJ 之 Binary Tree Zigzag Level Order Traversal (二叉树的曲线层次遍历)
- Binary Tree Level Order Traversal 二叉树的层序遍历
- LeetCode 102 Binary Tree Level Order Traversal(二叉树的层级顺序遍历)(*)
- Binary Tree Level Order Traversal 二叉树的同层遍历
- HDU 6069 Counting Divisors【素数筛法】
- First Time
- 算法编程题-字符串类型题目
- 5.1.3—二叉树的遍历—Binary Tree Postorder Traversal
- 前 言 (全集PDF版下载)
- 5.1.4—二叉树的遍历—Binary Tree Level Order Traversal
- Union与Union All 区别
- 5.1.5—二叉树的遍历—Binary Tree Level Order Traversal II
- Android7.0中尝试传递 file:// URI 会触发 FileUriExposedException
- docker~swarm搭建docker高可用集群
- 嵌入式linux基础面试题
- 全球100款大数据工具汇总
- 5.1.6—二叉树的遍历—Binary Tree Zigzag Level Order Traversal
- Java 静态绑定与动态绑定