
链表
刘大铿
前端
展开
-
leetcode. 26 删除排序数组中的重复项
解法一:解法一是我最喜欢的解法,将设一个指针count,遇到相等的跳过 不管他,遇到不相等的添加到nums[count],然后count++。 时间复杂度O(N),空间复杂度O(1) public int removeDuplicates(int[] nums) { if(nums.length < 2) return nums.length; int count = 1; for(int i = 1; i < nums.le...原创 2020-05-22 01:02:16 · 183 阅读 · 0 评论 -
leetcode. 25 K个一组翻转链表
解法一:利用循环,无递归 时间复杂度O(KlogN) 空间复杂度O(1) publicListNodereverseKGroup(ListNodehead,intk){ intn=0; for(ListNodei=head;i!=null;n++,i=i.next); ListNodedummy=newListNode(0); dummy.next=head; ...原创 2020-05-20 17:02:36 · 163 阅读 · 0 评论 -
leetcode 142. 环形链表 2
哈哈,这题和环形链表1差不多 ,链表1详情参见https://blog.youkuaiyun.com/a66666_/article/details/105211023 解法1. 快慢指针 (建议不要直接复制到leetcode,会报错,自己手打一遍) 时间复杂度O(N) 空间复杂度O(1) publicListNodedetectCycle(ListNodehead){ ListNodewalker=head; ListNoderunner=h...原创 2020-05-18 19:43:18 · 160 阅读 · 0 评论 -
LeetCode 24.两两交换链表中的节点
解法一:迭代法 时间复杂度O(N) 空间复杂度O(1) java描述: publicListNodeswapPairs(ListNodehead){ ListNodedummy=newListNode(0); dummy.next=head; ListNodecurrent=dummy; w...原创 2020-05-18 17:25:40 · 161 阅读 · 0 评论 -
LeetCode 206.反转链表
解法一:迭代 一共有三个指针,preNode,head,recordNext,三个指针会慢慢迭代向后面的节点 java描述: publicListNodereverseList(ListNodehead){ ListNodepreNode=null; while(head!=null){ ListNode...原创 2020-04-03 00:43:55 · 134 阅读 · 0 评论 -
leetcode 141.环形链表
解法一:快慢指针,当快指针追上慢指针说明链表是环形的 时间复杂度O(N) 空间复杂度O(1) java描述: publicbooleanhasCycle(ListNodehead){ if(head==null)returnfalse; ListNodewalker=head; ListNoderunner...原创 2020-03-31 00:56:41 · 179 阅读 · 0 评论