本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言
:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言
,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨
.但小编初心是能让更多人能接受我们这个概念
!!!
前言
在上一篇文章中
我们讲解了
- 寻找链表的
中间结点
: 用快慢指针
的速度差解决 中点问题 的理解
- 判断链表是否带环: 因为
环
,快慢直接总会一点一点相遇的 快慢指针 的熟悉
- 返回链表倒数第
k
个节点: 更扩展了,快慢指针
也不一定先一起走,也有可能 快指针 先走,慢指针 再跟着的思想
而今天我们主要讲解 “三指针” 在链表面试题中运用
下面让小编结合具体的题目,给小伙伴细细道来吧 💖 💖 💖 💖
目录
- 反转链表
- 链表的回文结构
一. 反转链表
反转链表题目链接
1. 题目描述
2. 解题思路
- 首先我们声明 三个引用类型 cur head curN ,先让
cur
置为null
head
为头节点,curN
为头结点的下一个节点
- 先讲
head
连接cur
接着我们让cur
走到head
,head
走到curN
curN
走到下一个节点 ,循环往复,直到 curN 到 null
3. 题解代码(Java)
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/class Solution {public ListNode reverseList(ListNode head) {if(head==null) {return head;} ListNode cur=head.next;head.next=null;while(cur != null) {ListNode curN=cur.next;cur.next=head;head=cur;cur=curN;}return head;}
}
鱼式疯言
简单来说
三指针法
也叫 头插法
一个指针
curN
带头 ,后面两个指针
让 头变成尾 ,这便是 三指针 头插 法 的含义
二. 链表的回文结构
1. 题目描述
链表的回文结构题目链接
2. 解题思路
- 首先 结合我们学过的 快慢指针法 找到
中间
位置
什么 💥💥💥 有小伙伴不知道 快慢指针法 别急别急,不懂的小伙伴查看下面链接哦
快慢指针法
- 然后在中间位置进行
三指针法
进行头插
操作
- 然后首尾
相反
方向一起走,开始判断首尾
是否 相同 ,直到相遇
<1>. 节点数为 偶数 时
<2>. 节点数为 奇数 时
3. 题解代码(Java)
import java.util.*;/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class PalindromeList {public boolean chkPalindrome(ListNode A) {if(A==null) {return false;}ListNode dev=A;ListNode fast =A,slow=A;while(fast != null && fast.next != null) {slow=slow.next;fast=fast.next.next;}ListNode cur=slow.next;while(cur != null) {ListNode Ncur=cur.next;cur.next=slow;slow=cur;cur=Ncur;}while(A != slow) {if(A.val != slow.val){return false;}if(A.next==slow) {return true;} A=A.next;slow=slow.next;}return true;
}
}
鱼式疯言
要点:
在本题我们利用了 快慢指针的头插 ,三指针 的方法
注意:
当节点数为
偶数
时
就需要 判断
A.next==slow
是否成立 ,这点一定要主要,否则就很有可能进入 无限循环
总结
-
反转链表 : 体会到三指针在反转链表的实用性
-
链表的回文结构:利用了快慢指针的头插 ,三指针 的方法 的结合从中解决了本题
如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正
希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖