算法三 morris算法

本篇文章根据左程云视频教程整理而来

https://www.bilibili.com/video/BV11v411G7xR?p=4

一、奇数在奇数位置上,偶数在偶数位置上

一个数字数组,把奇数都放在奇数的位置,或者把偶数都放在偶数的位置的算法题!

两个指针变量a、b,a、b步长都为2,即a永远指向偶数位置,b永远指向奇数位置,每次判断n-1位置的数,若为偶数与a位置的数交换位置,a移动到下一个偶数位置a=a+2,否则与b交换位置,b移动到下一个奇数位置b=b+2

array[n-1] = 1,为奇数,与b位置的数交换

b = b + 2

array[n-1] = 6,为偶数,与a位置的数交换, a = a + 2

二、morris算法  时间复杂度O(n), 空间复杂度O(1)

实例morris序  第一次访问,更改mostRight.right = cur

第二次访问,更改mostRight.right = null

完整morris序

morris算法

morris算法

第一次访问打印,二叉树先序遍历

第二次访问打印,二叉树中序遍历

morris中序遍历二叉树

morris先序遍历二叉树

morris后续遍历二叉树

morris后序遍历二叉树

打印逆序打印左树右边界(单链表反转再反转)

反转单链表

morris判断一棵树是二叉树:中序遍历是升序的

 morris算法求二叉树的最小高度

1)递归算法求二叉树的最小高度

2)morris算法求二叉树最小高度

morris算法的应用场景

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值