
链表
凤梨No.1
这个作者很懒,什么都没留下…
展开
-
Leetcode206.反转链表
206.反转链表题目方法一——暴力解法方法二——迭代方法方法三——递归题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?方法一——暴力解法建立一个新链表,新链表是采用头插法建立的。时间复杂度与空间复杂度都是O(n)public class ReverseList {//Definition原创 2020-07-17 16:47:35 · 190 阅读 · 0 评论 -
数据结构之链表
链表一、单链表二、双向链表三、数组与链式存储的线性表对比1、基于时间比较1、查找2、插入与删除2、基于空间比较四、例题1、简单例题2、中等例题3、困难例题链表是线性表的一种链式存储,即用指针将存储线性表中数据元素的那些单元依次串联在一起。一、单链表链表是一系列的存储数据元素的单元通过指针串接起来形成的,因此每个单元至少有两个域,一个域用于数据元素的存储,另一个域是指向其他单元的指针。这里具有一个数据域和多个指针域的存储单元通常称为结点(node)。在 Java 中没有显式的指针类型,然而实际上对原创 2020-06-10 15:10:40 · 129 阅读 · 0 评论 -
Leetcode817.链表组件
817:链表组件题目思路题目给定一个链表(链表结点包含一个整型值)的头结点 head。同时给定列表 G,该列表是上述链表中整型值的一个子集。返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。示例 1:输入:head: 0->1->2->3G = [0, 1, 3]输出: 2解释:链表中,0 和 1 是相连接的,且 G 中不包含 2,所以 [0, 1] 是 G 的一个组件,同理 [3] 也是一个组件,故返回 2原创 2020-06-08 15:36:40 · 170 阅读 · 0 评论 -
Leetcode1367.二叉树中的列表
1367:二叉树中的列表题目思路一思路二题目给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。一直向下的路径的意思是:从树中某个节点开始,一直连续向下的路径。示例 1:输入:head = [4,2,8], root = [1,4,4,null,2,2,null,1,null,6,8,null,null,null,nu原创 2020-06-08 13:44:30 · 332 阅读 · 0 评论 -
Leetcode82删除排序链表的重复元素II
82:删除排序链表的重复元素II题目思路一思路二题目给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3思路一定义一个头结点,在处理链表前几个结点值相等时更方便;若该结点值与下一个结点值不相等时,将该结点加入返回链表中;若该结点原创 2020-06-07 19:55:58 · 137 阅读 · 0 评论 -
Leetcode83删除排序链表中的重复元素
83:删除排序链表中的重复元素题目思路一思路二思路三题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3思路一利用set不能存储相同元素特性,如果set添加成功就继续,否则就删除该结点。/** * Definition for singly-linked list. * public class原创 2020-06-07 15:18:02 · 121 阅读 · 0 评论 -
Leetcode234.回文链表
234.回文链表题目思路一思路二题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路一将链表的值依次存入列表中再利用双指针法比较是否首尾对应位置的元素值是否相等。/** * Definition for singly-linked list. * public class ListNode {原创 2020-06-07 14:29:53 · 104 阅读 · 0 评论 -
剑指Offer面试题06从头到尾打印链表
面试题06:从头到尾打印链表题目思路一思路二思路三题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000思路一利用栈先进后出的特点,依次push()链表的值,然后再依次从栈中pop()取值存进返回数组中。/** * Definition for singly-linked list. * public class ListNode { *原创 2020-06-05 14:47:18 · 148 阅读 · 0 评论