链表
文章平均质量分 65
Lynn_Baby
这个作者很懒,什么都没留下…
展开
-
LeetCode—reverse-nodes-in-k-group(k个一组反转链表)—java
题目描述:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it i...原创 2018-06-08 01:15:08 · 698 阅读 · 0 评论 -
LeetCode—swap-nodes-in-pairs(成对结点的交换)—java
题目描述:Given a linked list, swap every two adjacent nodes and return its head.For example,Given1->2->3->4, you should return the list as2->1->4->3.Your algorithm should use only consta...原创 2018-06-07 23:36:54 · 518 阅读 · 0 评论 -
LeetCode—merge-k-sorted-lists(归并排序链表)—java
题目描述:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.思路解析:归并排序是排列数组的,现在应用到排列list这里来复习一下Merge Sort(对于数组操作),参考Wikipedia:归并操作(merge),也叫归并算法,指的是将两个已经排序的序列...原创 2018-06-07 21:25:23 · 486 阅读 · 0 评论 -
LeetCode—remove-nth-node-from-end-of-list(删除链表倒数第n个结点)—java
题目描述:Given a linked list, remove the n th node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from ...原创 2018-06-07 14:04:02 · 158 阅读 · 0 评论 -
LeetCode—convert-sorted-list-to-binary-search-tree(有序链表转换成二叉搜索树)—Java
题目描述:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.思路解析:自顶向下建树:先用快慢指针找到链表的中间节点,然后把它设置为树的根节点。在找的过程中,注意的是把中间节点的前一个节点也找到,这样就可以断开前后了。然后递归左链表,...原创 2018-06-04 11:04:39 · 404 阅读 · 0 评论 -
剑指offer-滑动窗口的最大值-Java
题目描述:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...原创 2018-05-13 00:05:22 · 352 阅读 · 0 评论 -
剑指offer-删除链表中重复的结点-java
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路解析:需要两个指针来判断是不是有相等的值先用一个指针找没有重复的结点,那么就把preNode赋给它如果有重复的结点,就要找到下一个结点,然后把preNode换成下一个...原创 2018-04-26 15:59:12 · 177 阅读 · 0 评论 -
剑指offer-链表中环的入口结点-java
题目描述:一个链表中包含环,请找出该链表的环的入口结点。思路解析:快慢指针可以检查链表中的环,如果相遇就是有环找入口的方法是省略许多圈后,举个简单的例子,下面这种情况是c+a=a+b,此时c=b,所以相遇点继续向前到达入口的距离是和头结点到入口的距离是一样的。 代码:/* public...原创 2018-04-25 17:03:53 · 147 阅读 · 0 评论 -
剑指offer-字符流中第一个不重复的字符-java
题目描述:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。思路解析:用HashMap来记录每个字符出现了几次,用ArrayList来记录顺序。代码:import java.ut...原创 2018-04-25 14:44:05 · 119 阅读 · 0 评论 -
剑指offer-二叉搜索树与双向链表
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路解析:用栈来做,把根节点的左子树,左子树的左子树,......全部放入栈中,然后弹出的肯定是最小值注意要把最左边的作为头节点,存起来list只要栈不为空,或者是root还有节点,就可以一直去连接访问过的节点存为pre,可以进行下一次的循环代码:import java.ut...原创 2018-04-24 10:57:45 · 132 阅读 · 0 评论 -
LeetCode—merge-two-sorted-lists(合并链表)—java
题目描述:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.思路解析:合并链表一个为空,就返回另一个,否则的话进行比较,把小的拼接到新的链表后边最后看看是谁还剩下了。代...原创 2018-07-12 19:42:13 · 275 阅读 · 0 评论