文章分类 -  leetcode-Linkedlist

摘要:解题思路: 寻找中间节点的问题,最好的方法就是一个快指针,一个慢指针; 细节:如果链表节点数是偶数,需要返回的是中间两个节点的第二个,可以通过快指针的状态区分链表节点是奇是偶/** * Definition for singly-linked list. * struct ListNode { * 阅读全文
posted @ 2019-07-27 21:30 天涯海角路 阅读(82) 评论(0) 推荐(0) 编辑
摘要:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 Li 阅读全文
posted @ 2019-07-27 21:27 天涯海角路 阅读(69) 评论(0) 推荐(0) 编辑
摘要:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 阅读全文
posted @ 2019-07-27 21:22 天涯海角路 阅读(98) 评论(0) 推荐(0) 编辑
摘要:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链 阅读全文
posted @ 2019-07-27 21:21 天涯海角路 阅读(330) 评论(0) 推荐(0) 编辑
摘要:我的LeetCode代码仓:https://github.com/617076674/LeetCode原题链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/description/题目描述:知识点:链表思路:用下一个节点 阅读全文
posted @ 2019-07-27 21:03 天涯海角路 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题目: 给定一个链表的头结点是head,请判断该链表是否为回文结构 例如: 1->2->1,返回true 1->2->2->1,返回true 1->2->3,返回false分析:在链表问题中,时间复杂度一般都是O(n)的,所以链表的优化一般在空间复杂度上的优化,在笔试和面试中,面对链表的问题,我们的 阅读全文
posted @ 2019-07-27 20:55 天涯海角路 阅读(216) 评论(0) 推荐(0) 编辑
摘要:判断一个链表是否是回文链表回文链表1.找到中间结点2.中间位置之后的链表翻转上述两个的方法上两篇文章有写过3.将第一个链表与第二个链表一次向后遍历,比较1-2-3-2-11-2-3-1-2;if(A==null){ return false; } //找到中间节点 ListNode first=A; 阅读全文
posted @ 2019-07-27 20:53 天涯海角路 阅读(174) 评论(0) 推荐(0) 编辑
摘要:思路1:找到中间节点然后把后面的翻转,(需要断开链表)然后比较和头节点开始的前段,最后要是后半段的游标可以走到最后说明是回文否则不是思路2:整体翻转比较思路3:借助一个栈存放前半段的元素,然后和后半段的比较 public boolean isPalindrome(ListNode head) { i 阅读全文
posted @ 2019-07-27 20:52 天涯海角路 阅读(234) 评论(0) 推荐(0) 编辑
摘要:题目描述:Given a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1->2->2->1Output: trueFollow up:Co 阅读全文
posted @ 2019-07-27 20:51 天涯海角路 阅读(220) 评论(0) 推荐(0) 编辑
摘要:1. 问题描述:给出一个链表,判断该链表是否为回文链表2. 解决的方法有两种,一种是将链表进行翻转(这里可以使用递归来解决)然后翻转后的后半部分与链表的前半部分进行比较来进行判断,第二种是将先找到链表的中间位置,这里可以使用快慢指针指针来进行,快指针一次走一步,慢指针一次走两步,那么等到快指针走到末 阅读全文
posted @ 2019-07-27 20:49 天涯海角路 阅读(112) 评论(0) 推荐(0) 编辑
摘要:对单链表进行反转有迭代法和递归法两种。 1. 迭代法 迭代法从前往后遍历链表,定义三个指针分别指向相邻的三个结点,反转前两个结点,即让第二个结点指向第一个结点。然后依次往后移动指针,直到第二个结点为空结束,再处理链表头尾即可。 1.png 2.png 3.png 4.png 5.png /** * 阅读全文
posted @ 2019-07-27 20:43 天涯海角路 阅读(93) 评论(0) 推荐(0) 编辑
摘要:对单链表进行反转有迭代法和递归法两种。 1. 迭代法 迭代法从前往后遍历链表,定义三个指针分别指向相邻的三个结点,反转前两个结点,即让第二个结点指向第一个结点。然后依次往后移动指针,直到第二个结点为空结束,再处理链表头尾即可。 2. 递归法 基线条件:空链或只有一个结点,直接返回头指针 递归条件:递 阅读全文
posted @ 2019-07-27 20:38 天涯海角路 阅读(137) 评论(0) 推荐(0) 编辑
摘要:我的LeetCode代码仓:https://github.com/617076674/LeetCode原题链接:https://leetcode-cn.com/problems/reverse-linked-list/description/题目描述:知识点:链表思路一:递归地反转链表递归的终止条件 阅读全文
posted @ 2019-07-27 20:38 天涯海角路 阅读(105) 评论(0) 推荐(0) 编辑
摘要:示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5方法一:暴力求解思路: 最容易想到的是遍历链表,将数据域为val的节点删除。但是,单链表一涉及删除,那么就得找到待删除节点的前驱节点,然而第一个节点没有前驱节点,当val恰为第一个节点的数据域时, 阅读全文
posted @ 2019-07-27 19:15 天涯海角路 阅读(372) 评论(0) 推荐(0) 编辑
摘要:样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 public ListNode removeElements(ListNode head, int val) { // Write your code here List 阅读全文
posted @ 2019-07-27 19:14 天涯海角路 阅读(371) 评论(0) 推荐(0) 编辑
摘要:样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode * 阅读全文
posted @ 2019-07-27 19:13 天涯海角路 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目描述:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:声明一个指针指向第一个节点,利用这个指针来判断值是否相等,相等的话就删除,不相等的话就next,最后返回第一个节点的地址。代码如下: 阅读全文
posted @ 2019-07-27 19:10 天涯海角路 阅读(74) 评论(0) 推荐(0) 编辑
摘要:文章目录 问题 解一 解二 解三 解四问题 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5给定的 ListNode:public static class ListNode { int val; 阅读全文
posted @ 2019-07-27 19:09 天涯海角路 阅读(114) 评论(0) 推荐(0) 编辑
摘要:编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 解题思路 首先分别 阅读全文
posted @ 2019-07-27 19:00 天涯海角路 阅读(95) 评论(0) 推荐(0) 编辑
摘要:这是一题常见的面试题,考察求职者对链表的理解,题目在leetcode上: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. 首先来判断链表有没有环。看一个直观 阅读全文
posted @ 2019-07-27 17:57 天涯海角路 阅读(151) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示