// ---------------------- 层层遍历树 ------------------------ // // 笨方法 typedef struct Node { int val; struct Node *left; struct Node *right; } TNode; static TNode root; void visit_node(TNode *node, int layer, int max_layer) { if (!node) return; if (layer > max_layer) return; cout<<"layer "<<layer<<": "<<node->val<<endl; int sl = ++layer; visit_node(node->left, sl, max_layer); visit_node(node->right, sl, max_layer); } int max_layer(TNode *root) { if(!root) return 0; if(!root->left && !root->right) return 1; int l = max_layer(root->left); int r = max_layer(root->right); int ret = l>r?l:r; return ++ret; } // 入口方法 void visit_tree(TNode *root) { int ml = max_layer(root); cout<<"max layer: "<<ml<<endl; visit_node(root, 1, ml); } /*------------------------------------------------------------------------*/ // 好方法 class Solution { public: vector<vector<int> > levelOrder(TreeNode *root) { vector<vector<int> > ret; if(!root) return ret; vector<int> vec; ret.push_back(vec); queue<TreeNode *> q; q.push(root); int l1 = 1, l2 = 0, cl = 0; while(!q.empty()) { TreeNode *&f = q.front(); q.pop(); --l1; ret[cl].push_back(f->val); if(f->left) {q.push(f->left); ++l2;} if(f->right) {q.push(f->right); ++l2;} if(l1 == 0) { l1 = l2; l2 = 0; if(!q.empty()) { vector<int> vec; ret.push_back(vec); ++cl; } } } return ret; } };
欢迎关注微信公众号——计算机视觉
相关推荐
遍历目录树 遍历目录树 遍历目录树 遍历目录树
树的基本运算:创建树;输出树(凹入显示);遍历树(先序、中序、后序、层次);求二叉树的深度;求叶子数;求结点数。
VC++遍历树形控件代码演示 VC++遍历树形控件代码演示,将树控中各主节点、子节点全部枚举,如上图所示,遍历树控所有节点。
前序遍历树—–无限分类的问题,前序遍历比普通的邻接表法有更好的优势,能够实现更快的访问速度和更灵活的分类操作
层次遍历树 rar c语言版本... 不会的来看看
无限级分类----改进前序遍历树 二叉树 c# 无限极分类 前序遍历树
JSP_遍历树(递归),JSP_遍历树(递归)
//输入一个数列以0为结束标志,建立二叉遍历树,并对其进行逆中序遍历,释放空间,0代表null
可进行逆层次遍历树,例如1(2(4,5),3(6,7))输出4
VC .NET 遍历树形菜单,遍历树形节点菜单的各个节点,听说过目录遍历,现在来一个菜单遍历,可遍历树控菜单的各个节点,可看成是从左边复制出来一个树形菜单到右侧视图中,本源码实现了在树控件中插入项、在树控件中...
jquery遍历节点树jquery遍历节点树jquery遍历节点树
不错的实例资料,能很好的对树控件进行遍历,获取到树的内容
非递归遍历树图解,代码:https://blog.csdn.net/u012606924/article/details/91039044
js 树形结构数据遍历条件判断删除对应数据
结合数据结构与以及“预排序遍历树算法”, 利用关系数据库系统实现树型层次模型数据库的存储、检索、遍历、插入和删除等基本算法,并解决了“预排序遍历树算法”的一个缺点(牺牲写的性能)。
三叉树多叉树遍历 c# 2.0
/** * 功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历 * * 参考资料0:数据结构(C语言版)严蔚敏
遍历json显示树形菜单 遍历json显示树形菜单 遍历json显示树形菜单
自己写的,已经测试实现了,使用的非遍历树节点,采用更为简单的方法进行循环。逻辑比较简单。可以下载看一看,参考一下。
22.3 遍历树节点.mp4