
OJ题【牛客网】
面试题嘻嘻嘻
LaLaLaworld
骑上我心爱的小摩托,代码它不会堵车
展开
-
Java-链表的回文结构【牛客网】
题目描述 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: 1->2->2->1 返回:true 解题思路: 不符合规范的两种思路(空间复杂度为O(N)): 1、如果是一个字符串/数组判定回文非常简单:用一...原创 2020-04-20 15:32:37 · 362 阅读 · 0 评论 -
Java-删除链表中的重复结点【牛客网】
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解题思路: 判断cur和cur.next由于链表是有序的,重复结点一定是相邻的,所以目标就是识别出当前结点是不是重复结点,如果不是重复结点,就把这个结点插入到结果链表的...原创 2020-04-18 23:11:37 · 243 阅读 · 1 评论 -
Java-链表分割【牛客网】
题目描述: 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。 解题思路: 创建两个新的链表: big:这个链表中所有大于等于基准值的节点 small:这个链表中所有小于基准值的节点 基准值为4 把9和基准值(4)相比,9比基准值大:...原创 2020-04-17 22:47:48 · 375 阅读 · 0 评论 -
Java-链表中倒数第k个结点【剑指Offer】
题目描述: 输入一个链表,输出该链表中倒数第k个结点。 思路: k不能是0,但是k可以是size,先求出当前链表的长度,用链表长度减去k就是要走的步数。就可以求出倒数第k个结点。 代码实现: public class LinkedListTest{ static class ListNode{ int val; ListNode next; public ListNode(int v...原创 2020-04-03 16:03:01 · 121 阅读 · 2 评论