文章目录
- 前言
- 一、 [leetcode 27. 移除元素-java版本](https://blog.csdn.net/qq_41810415/article/details/125889812)
- 二、 [344. 反转字符串](https://blog.csdn.net/qq_41810415/article/details/127109444?spm=1001.2014.3001.5501)
- 三、[替换空格](https://blog.csdn.net/qq_41810415/article/details/124566132)
- [四、151. 反转字符串中的单词](https://blog.csdn.net/qq_41810415/article/details/127109444?spm=1001.2014.3001.5501)
- 五、[206.翻转链表](https://blog.csdn.net/qq_41810415/article/details/126634163)
- 六、[leetcode 19. 删除链表的倒数第 N 个结点-java实现](https://blog.csdn.net/qq_41810415/article/details/125754600)
- 七、160. 相交链表
- 八、环形链表II
- 九、三数之和
- 十、四数之和
前言
双指针算法 基础可以点进来
里面有模板
一、 leetcode 27. 移除元素-java版本
简单的一道题
二、 344. 反转字符串
三、替换空格
四、151. 反转字符串中的单词
五、206.翻转链表
六、leetcode 19. 删除链表的倒数第 N 个结点-java实现
七、160. 相交链表
评测系统将根据这些输入创建链式数据结构,并将两个头节点 headA 和 headB 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3
输出:Intersected at ‘8’
解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。
在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。
— 请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。
题解
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode a = headA ;
ListNode b = headB ;
while( a != b ){
if(a != null ) a = a.next ;
else a = headB ;
if(b != null) b = b.next ;
else b = headA ;
}
return a ;
}
}