摘要: 解题思路:这题就是正常模拟,我用三个指针,left,mid,right,从dummy_head开始,一直交换即可。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex 阅读全文
posted @ 2025-03-12 19:41 kukudev 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 解题思路:这题的思路就是让一个指针先走n步,然后再用另一个指针同步走,直到先走的指针的next为null,然后后面的指针的后一个指针删掉即可。 /** * Definition for singly-linked list. * public class ListNode { * int val; 阅读全文
posted @ 2025-03-12 19:32 kukudev 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 解题思路:我的思路对两个不等长的链表进行补0,短链表前面补0直到与长链表相等,然后对两个链表同步遍历,在list1上保存结果,用sum存储中间加法值,add保存进位,直到遍历结束,最后如果add=1,就在后面节点再加1,最后返回list1的头结点。 /** * Definition for sing 阅读全文
posted @ 2025-03-12 19:26 kukudev 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 解题思路:这题思路就是遍历两个链表,这相当于是归并排序的合并部分的代码,先创建一个虚拟头结点,next节点作为返回节点,设置个p节点负责记录,然后同时遍历两个链表,每个值进行对比,小的值的节点作为p的next,然后p=p.next,那个小的值的节点等于其next节点,然后继续遍历,直到某个链表的节点 阅读全文
posted @ 2025-03-12 19:16 kukudev 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 解题思路:本题前面的思路和前一个相同,但是要找到对应的环开始的点,那就需要分析,结论就是:slow的指针继续走,同时一个从head出发的节点同时走,最后他们一定会在环开始点相遇。 /** * Definition for singly-linked list. * class ListNode { 阅读全文
posted @ 2025-03-05 20:20 kukudev 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 解题思路:快慢指针,一个一步一步走,一个两步两步走,如果有环,则一定会相遇;如果没环,那么快的指针一定会找到null。 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * 阅读全文
posted @ 2025-03-05 20:11 kukudev 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 解题思路:这题思路主要是用某个容器(数组等)来存储链表,然后再用双指针或者同时遍历的方法就可以判断。我使用栈进行存储,出栈的元素相当于链表倒序,如果和链表正序的结果相同就证明是回文。如果想用O(1)的空间,就把前一半或后一半的链表倒转,然后遍历就可以了。 /** * Definition for s 阅读全文
posted @ 2025-03-04 21:05 kukudev 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 解题思路:这题思路就是用某个数据结构记录需要被置0的行和列,一般需要两次遍历。我采用集合的形式,最省空间的方法就是用数组的第一行和第一列来记录,但是要遍历一遍是是否第一行或第一列有0。 class Solution { public void setZeroes(int[][] matrix) { 阅读全文
posted @ 2025-03-03 19:36 kukudev 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 解题思路:不允许用除法,所以可以考虑前缀和的思路。最终结果的任意一个索引对应的数都是nums数组对应索引左边所有数的乘积*右边所有数的乘积,所以先遍历两遍用两个数组记录,然后最后再相乘写入对应的索引的值。(可以更省空间的话就只在结果数组上操作,左边照常,右边的话用一个变量来表示乘积) class S 阅读全文
posted @ 2025-03-03 19:09 kukudev 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 解题思路:最简单的方法就是浪费空间的方法。还有一种巧法,先将整个数组反转,然后将需要移动的后面的k(如果超过数组长度就取余)个位置的数反转,最后将剩下的数反转。 class Solution { public void rotate(int[] nums, int k) { k = k%nums.l 阅读全文
posted @ 2025-03-03 19:05 kukudev 阅读(1) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示