上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 25 下一页
摘要: 思路很简单 按时链表的题做起来很容易犯小错误,思维要缜密 还要多练习啊 做之前最好画算法框图 阅读全文
posted @ 2018-02-11 20:22 stAr_1 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 第一题:遍历链表,遇到重复节点就连接到下一个。 第二题:思路比较简单,设置一个超前节点作为head的前节点,往下遍历,遇到重复的就把超前节点连接到新的val节点。 当要经常删除第一个节点是,要设置一个超前节点 阅读全文
posted @ 2018-02-11 13:26 stAr_1 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 感觉这个题后台的运行程序有问题,一开始自己想的是反转链表那道题的方法,只是隔一个节点执行一次,但是没有通过,TLE了,但是很奇怪,并没有死循环,就是最后返回的时候超时。 最后的思路就是很简单的进行交换,设置一个头结点前边的0节点先把第三个节点接到第一个上边,然后把第一个接到第二个上,然后把第二个节点 阅读全文
posted @ 2018-02-09 21:14 stAr_1 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 注意进位的处理和节点为null的处理 阅读全文
posted @ 2018-02-09 19:01 stAr_1 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 快慢指针用来判断循环链表 记住 快慢指针有四种常用的应用场景: 1.找到有序链表的中点,快指针到头的时候,慢指针就是中点。 2.判断是不是循环链表,快慢指针相遇就是 3.找到循环链表的起点,以链表头结点开始的结点和以快慢指针相遇结点为开始的结点,这两个结点相遇的地方就是开始 4.判断两个链表是不是相 阅读全文
posted @ 2018-02-09 13:17 stAr_1 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 和第一题不同的地方是,容忍两次重复 虽然题目上说只需要长度,但是否检测的时候如果数组不跟着改变也是不行的 没说清楚题意 自己是用双指针做的,看了大神的答案更简单 阅读全文
posted @ 2018-02-08 14:27 stAr_1 阅读(156) 评论(0) 推荐(0) 编辑
摘要: /* 这个题是medium的意思应该是用双指针的方法做,如果使用下边的新建链表的方法,就是easy的题目了 双指针会用到很多链表的相连操作 */ public ListNode partition(ListNode head, int x) { ListNode s = null; ListNode b = null; ... 阅读全文
posted @ 2018-02-08 13:59 stAr_1 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 这个题难点在于无法保证右边是不是有更高的墙可以保证挡住水 双指针可以解决 阅读全文
posted @ 2018-02-07 13:26 stAr_1 阅读(210) 评论(0) 推荐(0) 编辑
摘要: /* 查看网上的思路有两种: 1.每次取两边的数,然后进行比较 2.取数的倒置数,进行比较 */ public boolean isPalindrome1(int x) { if (x=10) { len*=10; temp/=10; ... 阅读全文
posted @ 2018-02-06 19:47 stAr_1 阅读(167) 评论(0) 推荐(0) 编辑
摘要: /* 重点还是反转链表 思路就是中间的反转,然后两头接上 */ public ListNode reverseBetween(ListNode head, int m, int n) { if (head==null||m>=n) return head; int count = 1; ListNode sta =... 阅读全文
posted @ 2018-02-06 18:24 stAr_1 阅读(96) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 25 下一页