Morris遍历
来源:互联网 发布:淘宝货到付款是现金么 编辑:程序博客网 时间:2024/06/05 22:47
Morris遍历最主要的特点是不需要堆栈,其空间复杂度为O(1),算法的核心步骤在于,找到当前节点左子树的最右节点,将该节点的右指针指向当前节点,从而在进入左子树之后,可以循此虚拟的连接回到当前节点。在左子树访问结束后,还要消除该虚拟连接,恢复原二叉树的结构。
Morris遍历的C++代码结构如下:
TreeNode *cur, *prev;cur = root;while (cur != nullptr) {if (cur->left == nullptr) {//do sth.prev = cur; /* */cur = cur->right;} else {TreeNode *node = cur->left;while (node->right != nullptr && node->right != cur)node = node->right;if (node->right == nullptr) { //visit curnode->right = cur;//prev = cur; //only if cur is just visited herecur = cur->left;} else { /*left has finished*/node->right = nullptr;// prev = cur; //only if cur is just visited herecur = cur->right;}}}
0 0
- Morris遍历
- Morris遍历
- Morris遍历
- Morris遍历
- morris后续遍历
- Morris 树遍历算法
- Morris遍历二叉树
- Morris 先序遍历
- Morris 二叉树遍历
- Morris遍历二叉树
- morris 遍历二叉树
- Morris二叉树遍历算法
- Morris遍历二叉树算法
- Morris Traversal 遍历二叉树
- Morris二叉树遍历算法
- Morris二叉树遍历算法
- Morris二叉树遍历算法
- Morris二叉树遍历算法
- post网络请求,支持多层字典参数
- 【bzoj1216】[HNOI2003]操作系统 堆+模拟
- Matrix与图像变换
- 黑马程序员—————— Java集合框架Collection
- 杀人游戏(hdu2211)插入法
- Morris遍历
- unix学习笔记------消息队列的接收
- Java学习路线图——及时纠正自己的学习方向
- 日经春秋 20151023
- java网络---实现多线程下载文件
- [转]测试淘宝站内的搜索系统
- ViewPager实现循环滑动实现方法+定时自动滑动实现方法详解
- unix学习笔记------消息队列---发送消息
- 电脑启动后出现checking file system on c: