链表
链表系列
crazy的蓝色梦想
小柒 爱前端
展开
-
链表 --- Leedcode 83 删除排序链表中的重复元素
题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解答var deleteDuplicates = function(head) { var p = head; while(p!=null && p.next != null) { // 如果有重复的数,直接原创 2020-05-10 21:10:00 · 172 阅读 · 0 评论 -
链表 --- leedcode 234 回文链表
题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true解答将链表中的各值存在数组中,再判断是否是回文。var isPalindrome = function(head) { var arr = []; while(head != null){ arr.push(head.val); head = head.next; }原创 2020-05-10 20:58:37 · 175 阅读 · 0 评论 -
链表 --- leedcode19 删除链表的第n个节点 (Medium)
题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。解析java代码:class Solution { public ListNode remov...原创 2020-04-10 16:52:49 · 184 阅读 · 0 评论 -
双指针/链表 leecode 21 合并两个有序链表 (Easy)
题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解析思路:创建一个新链表使用双指针遍历两个链表/** * Definition for singly-linked list. * ...原创 2020-03-27 22:03:01 · 282 阅读 · 0 评论 -
删除重复的数(Leedcode 82)--- 技巧添加哑结点
题目给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5解析链表中的常见技巧,建立哑结点,本题也是。在原链表前加一个哑结点,将cur指向这个哑结点。判断cur.next.val是否等于cur.next.next.val...原创 2020-01-22 09:30:16 · 197 阅读 · 0 评论 -
分割链表、奇偶链表(Leedcode 86、328)--- 技巧(构建哑结点)
题目给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5解析这题方法很容易想到,构建两个链表,将小于x的放...原创 2020-01-18 21:07:40 · 375 阅读 · 0 评论 -
反转链表(Leecode 206、92)
206 题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解析这题比较简单,使用迭代反转或者递归反转都可以,这里使用迭代反转:使用pre、cur、next这三个指针分别保存head结点的前一个结点,cur保存head结点、next保存head结点的下一...原创 2020-01-14 08:44:29 · 339 阅读 · 0 评论