初级算法-链表
进击的桐人
写些心得,不时回看
展开
-
初级-链表-删除链表的倒数第N个节点(JavaScript)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:这道题要用双指针来实现。先用first指针前进n,然后...原创 2018-09-08 10:59:50 · 1618 阅读 · 3 评论 -
初级-链表-合并两个有序链表(JavaScript)
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:方法很多,之前写过迭代法,这次写写递归法吧。若其中某条链表为空,那必然是返回另一条不为空的了。比较两条链表的头节点的大小,将较小者作为新...原创 2018-09-08 15:24:18 · 1100 阅读 · 0 评论 -
leetcode-初级-链表-回文链表(JavaScript)(完美满足要求)
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:O(n)的时间复杂度意味着只能遍历一趟链表,O(1)的空间复杂度意味着只能使用常数个变量(也就是不能使用数组、集合等变量)。于是...原创 2018-09-08 16:00:16 · 951 阅读 · 1 评论 -
LeetCode-初级-链表-环形链表(JavaScript)
给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?思路:设置两个指针p1,p2。p1每次走一步,p2每次走两步。若没有环,则两者不会碰到,若有环,则必然会碰到。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * ...原创 2018-09-08 16:25:18 · 1200 阅读 · 0 评论