摘要: 思路一,迭代法,借助哑节点来忽略边界问题。 实现代码如下 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nul 阅读全文
posted @ 2020-08-29 23:51 布羽 阅读(196) 评论(0) 推荐(0)
摘要: 两种思路,用递归或者迭代实现。理论性能差不多。虽然递归会比迭代多很多的函数调用栈开销。。 递归代码如下(能够使用递归法的两要素,出口,以及子问题是相同解法的更简单问题) /** * Definition for singly-linked list. * struct ListNode { * in 阅读全文
posted @ 2020-08-29 22:51 布羽 阅读(110) 评论(0) 推荐(0)
摘要: 主要有三个办法。 最简单的方法是遍历两边链表。 最好的办法是遍历一遍链表解决问题。用双指针法,一个快指针,一个慢指针。快指针先出发N-1步。然后两个指针同步调移动直到快指针指向尾节点,此时慢指针指向的就是要删除的节点。(其实你需要知道的是被删除节点的前一个节点,但首节点前面没有节点呀,通过引入哑节点 阅读全文
posted @ 2020-08-29 21:47 布羽 阅读(155) 评论(0) 推荐(0)
摘要: 这题怪不得那么人吐槽。要删除链部节点却不给链部头节点,只给一个要删的节点的地址。。。 这个题目其实没有任何实际意义,题目给了许多约束条件,才能够“在仅给出要删的节点的条件下实现删除节点操作”。。。(比如,被删除的节点不能是最后一个节点) 中文力扣的翻译也有问题,整的像个脑筋急转弯。 实现代码如下 / 阅读全文
posted @ 2020-08-29 20:29 布羽 阅读(93) 评论(0) 推荐(0)
摘要: 这题就是典型的字符串匹配问题。实现方法可谓极多。而且网上教程实在很详尽了。故不多赘述啦。贴我个人码了一遍的代码。。 感兴趣的直接参考下面这些大神的博客哈哈 https://www.zhihu.com/question/21923021 http://www.voidcn.com/article/p- 阅读全文
posted @ 2020-08-29 00:18 布羽 阅读(134) 评论(0) 推荐(0)