![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法-剑指offer
if_i_were_a
你好
展开
-
LeetCode 21合并两个有序链表
LeetCode第21题,也是剑指offer上的一个题,题目描述如下:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 public static ListNode mergeTwoList...原创 2019-04-10 10:55:30 · 125 阅读 · 0 评论 -
字符串中空格的替换
《剑指offer》p51/*面试题5替换空格: 请实现一个函数,把字符串中的每个空格替换成20%。例如“We are happy”则输出“We%20are%20happy”*/#include<stdio.h>void stringReplace(char str1[]){ int i,j; int originLength,newLength=0;...原创 2018-09-05 17:57:02 · 393 阅读 · 0 评论 -
删除链表一个结点时间复杂度为O(1)
/*剑指offer p119 面试题18在O(1)时间内删除链表结点 */#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node *next;} LinkNode;LinkNode * createLinkList(){ LinkN...原创 2018-09-08 15:57:49 · 1859 阅读 · 0 评论 -
LeetCode 160找到两个单链表相交的起始结点
编写一个程序,找到两个单链表相交的起始节点。LeetCode160题,剑指offer上的题 public static ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) return null; ...原创 2019-04-10 18:43:30 · 281 阅读 · 2 评论 -
链表的反转(逆置)
剑指offer面试题24 p142LeetCode第204题本题有两种解法,迭代法和递归法:迭代法比价好理解:代码如下:,要注意的是必须用一个tempHead来记录当前操作的下一个结点 //使用迭代的方法反转链表 public static ListNode reverseList(ListNode head) { ListNode pre=null;...原创 2019-04-07 13:21:26 · 655 阅读 · 0 评论 -
LeetCode 141判断链表是否有环[附创建链表的代码]
LeetCode上面的141题,同时也是昨晚携程笔试编程的第1题。当时那个函数很快就写出来了,但是在创建环形链表这儿一直绕不出来,花了很长时间。下来跟大家讨论才知道有的人有HashMap解决了,HashSet也有的解决了,还有的直接用一个char数组给解决了。还是把自己的方法整理一下思路就是两个指针,一个每次向前跑两个,一个向前跑一个,如果在某一个时间点,两者重复了,就说明是环形链表函...原创 2019-04-09 09:55:37 · 287 阅读 · 0 评论 -
LeetCode142给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
这是LeetCode上面的142题,同时也是剑指offer上的一个题整体思想:当判断完当前链表有环之后,先确定环的个数,确定完之后,让前面的指针开始先跑n个节点,然后两支针一起跑,两个指针相等的那个位置就是环形链表的入口节点代码如下: public static ListNode detectCycle(ListNode head) { if (head == n...原创 2019-04-09 17:05:56 · 2381 阅读 · 0 评论 -
求数组中只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 public static void main(String[] args) { int[] nums = {7, 6, 7, 5}; int[] nums1 = {0}; int[] nums2 = {0}; Find...原创 2019-07-16 15:26:58 · 622 阅读 · 0 评论 -
复杂链表的复制
题目如下:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)两种方法,在代码中已标识清楚,在牛客网上均通过关于第一种方法详细请看https://blog.csdn.net/wszy1301/article/details/8...原创 2019-07-18 20:19:27 · 630 阅读 · 0 评论