java数据结构常见算法

常见算法
链表:
1.链表有环无环
a:快指针和慢指针相交
2.环形链表相交,交点?
a:判断是否是环形链表,如果是环形链表,当走到交点的时候快指针的移动速度改成和慢指针一样,然后再判断相等
3两个非环形链表求交点
a1:快慢指针法:当快指针走到头时,快指针指向慢指针的链表,慢指针指到头时指向快指针的链表头,总有一时刻是相等的。
a2:穷举方式
a3:先求两个链表的差步数,然后夸到diff步,然后进行比较
4.链表反转
a:设preNode,改变当前指针的的指向为preNode,依次循环

5判断回文链表
a:快慢指针移动,移动到末尾时慢指针进行反转操作,快指针移动到头结点,进行比较
6.求链表的中点
a1:暴力求解:循环两遍
a2:采用快慢指针,快指针移动速度是慢指针的两倍,如果不为null,返回慢指针指向结点级为所求
7.求链表的第k个结点
a:采用快慢指针移动k-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值