- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 leetcode_160_Intersection of Two Linked Lists
思路:暴力解法,将第一个链表的所有结点放进HashSet,然后看第二个链表从头开始的第一个存在HashSet中的元素就是两个链表相交的地方。方法不够好,题目说的空间复杂度最好为O(1)
2015-02-07 16:09:59 683
原创 leetcode_143_Reorder List
思路:大概思路就是将后面的一半结点以倒序的方式依次插到前面一半的每一个结点的后面,考虑到后面一半的结点要倒序插入所以会用到栈。1.求出链表的长度2.将后边的结点依次入栈3.将栈里的元素依次插入到前面的结点后面
2015-02-07 15:36:34 678
原创 leetcode_25_Reverse Nodes in k-Group
思路:大概思路就是找出K个结点的起始位置和并将这K 个结点采用头插法的方式依次插入到这K个结点开始位置的前面一个位置之后,就可以了。思路倒是很简单,但是指针所指的位置的捉摸是有点麻烦的,还有就是我竟然没有把创建的头节点和整个链表给链接起来。anyway,还是把这道题目给做出来了。
2015-02-07 11:01:03 764
原创 leetcode_86_Partition List
思路:刚开始试着把所有小于x的结点依次插到前面去,但是因为第一个和最后结点的问题真的把我搞得焦头烂额,后来想想,用我媳妇想到的方法可能更清晰一点,用两个链表分别连接小于和大于等于x 的结点,然后再把两个结点链接到一起,就可以了。在实施的时候稍微偷点懒,首先创建两个头节点,哎,现在终于明白头节点的巨大作用了,其实,按我的那个思路,先搞个头节点,然后再用两个引用pre和cur就可以轻松搞定本题了。做完本题感觉收获好大,头节点的出现真的让我可以很轻松地搞定许多前面我费了好大的劲才搞定的题目,尤其是涉及到在链
2015-02-05 21:57:59 2123
原创 leetcode_92_Reverse Linked List II
思路:这种题目,举个例子能让思路更加清晰,通过在草纸上演算可知,题目要分两种情况,m==1和m>1的情况,然后就是围绕这两种情况展开讨论,删除后面的结点,然后将后面的结点添加到前面,一次搞定,bravo!
2015-02-04 21:01:39 775
原创 leetcode_142_Linked List Cycle II
思路:从头开始遍历链表并将结点的引用存储在HashSet中,出现重复的地方就是出现环的地方。
2015-02-04 20:00:03 712
原创 leetcode_141_Linked List Cycle
思路:一想到唯一就直接联想到了hashSet,至于在不用额外存储空间的情况下把题目搞出来,这个,确实还没有想到,to be continued......
2015-02-03 11:17:28 804
原创 leetcode_21_Merge Two Sorted Lists
思路:好像是数据结构上面的原题,就不多说了,通过比较把两个链表一起就可以了。需要注意的就是两个链表的head谁当新表的head问题,当然谁小谁当head 了,先比较一下即可。
2015-02-03 11:11:20 722
原创 leetcode_82_Remove Duplicates from Sorted List II
思路:大致思路就是,遍历链表找出重复元素的子列并删除重复元素子列,当然,第一个元素开始有重复元素的话比较特种,需要特殊考虑。删除子列的过程稍微有点绕,题目倒是不难理解。
2015-02-03 11:03:52 762
原创 leetcode_83_Remove Duplicates from Sorted List
思路:simple,从头到尾遍历结点,如果下一个结点不为空且当前结点和下一个节点相同,删除下一个结点,否则,遍历下一个结点。
2015-02-03 10:50:17 709
原创 leetcode_19_Remove Nth Node From End of List
思路:先让p指向head,p往后移动n个节点,然后让q指向head,p和q一起后移直至p指向最后一个结点,则q指向的结点即是倒数第n个结点。当然,倒数第len(链表的长度)个结点是一个特殊情况,直接head=head.next即可。
2015-02-03 10:42:09 687
原创 leetcode_61_Rotate List
本文的题意就是循环将后面的n个结点移动到前面去,所以,n有可能是大于链表的长度的,这是一个小小的陷阱。然后就是很简单的细节了,有点脑残,提交了好多次。
2015-02-01 15:20:03 991
原创 leetcode_24_Swap Nodes in Pairs
简单粗暴,首先让p指向第一个节点,若果p.next不为空,q指向p.next,交换p和q的值即可,如果p.next为空,退出。交换值后,让q.next赋值给p,如果q.next为空的话,退出循环。
2015-02-01 10:56:53 901
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人