实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)

实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)

一.介绍单链表 1.链表及单链表 (1)什么是链表 链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 例如下面的这种数据结构,由一个个的结点组成。每个结点中存储着数据,又存储着其他结点的地址。 ...

力扣160:相交链表

力扣160:相交链表

力扣160:相交链表题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定...

力扣203:移除链表元素

力扣203:移除链表元素

力扣203:移除链表元素题目描述:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:he...

力扣138:随机链表的复制

力扣138:随机链表的复制

力扣138:随机链表的复制题目描述:给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 ra...

力扣876:链表的中间结点

力扣876:链表的中间结点

力扣876:链表的中间结点题目描述:给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:head = [1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为 3 。示例 2:输入:head = [1,2,3,4,...

golang力扣leetcode 160.相交链表

160.相交链表160.相交链表题解思路1:1.用map存A的所有节点,赋值为true 2.遍历B的节点,如果map[cnt]=true说明就是交点 思路2:1.统计A的长和B的长,谁长谁先走几步,走到长度一致位置 2.A和B一起走,遇到相同的节点返回即可 3.如果不相交,返回nil思路3:1.设链...

golang力扣leetcode 114.二叉树展开为链表

114.二叉树展开为链表114.二叉树展开为链表题解思路:1.将原来的左子树放到右子树 2.将原来的右子树,放到原来的左子树的最右边 1 / \ 2 5 / \ \ 3 4 6 //将 1 的左子树插入到右子树的地方 1 \ 2 5 / \ \ 3 4 6 ...

golang力扣leetcode 23.合并K个升序链表

23.合并K个升序链表23.合并K个升序链表题解没啥含金量,就更归并排序一样,考验基本功吧代码type ListNode struct { Val int Next *ListNode } func mergeKLists(lists []*ListNode) *ListNode { dummy :...

golang力扣leetcode 19.删除链表的倒数第N个结点

19.删除链表的倒数第N个结点19.删除链表的倒数第N个结点题解思路:1.计算链表长度1.计算链表长度 2.增加一个哑节点,遍历到倒数n+1的位置 2.栈存储节点1.存储所有节点 2.倒数n+1的节点就是nodes[len(nodes)-1-n] 3.双指针1.两个指针,步伐相同 2.快指针先移动n...

golang力扣leetcode 24.两两交换链表中的节点

24.两两交换链表中的节点24.两两交换链表中的节点题解两种解法,第一种递归第二种迭代,链表题建议画图做代码package main type ListNode struct { Val int Next *ListNode } func swapPairs1(head *ListNode) *Li...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

社区圈子

数据库
数据库
分享数据库前沿,解构实战干货,推动数据库技术变革
253177+人已加入
加入