当前位置: 首页 > wzjs >正文

如何给网站添加cnzz网络平台

如何给网站添加cnzz,网络平台,网页设计 网站建设 哪个好,网站制作绩效考核表目录1、介绍2、链表的基本类型3、相关算法题【1】移除链表元素【2】设计链表1、介绍 链表是一种基础而强大的线性数据结构,其核心思想是通过节点和指针构建数据序列。与数组不同,链表中的元素在内存中非连续存储,每个节点包含数据和指向下一…

目录

  • 1、介绍
  • 2、链表的基本类型
  • 3、相关算法题
    • 【1】移除链表元素
    • 【2】设计链表

1、介绍

链表是一种基础而强大的线性数据结构,其核心思想是通过节点和指针构建数据序列。与数组不同,链表中的元素在内存中非连续存储,每个节点包含数据和指向下一节点的指针。

2、链表的基本类型

类型结构特点时间复杂度
单向链表节点:数据+指向下一节点的指针单向遍历插入/删除头节点:O(1)
插入/删除尾节点:O(n)
双向链表节点:数据+指向前后节点的指针双向遍历任意位置插入/删除:O(1)
循环链表尾节点指向头节点环形结构从任意节点开始遍历整个链表

3、相关算法题

【1】移除链表元素

LeetCode第203题,题目如下:

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1
输出:[]

示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

提示:

列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50

代码示例:

type ListNode struct {Val  intNext *ListNode
}func removeElements(head *ListNode, val int) *ListNode {//创建一个虚拟头节点dummy := &ListNode{Next: head}prev := dummycurrent := headfor current != nil {if current.Val == val {//跳过当前节点prev.Next = current.Next} else {//移动prev指针prev = current}//移动current指针current = current.Next}return dummy.Next
}

【2】设计链表

LeetCode第707题,题目如下:

你可以选择使用单链表或者双链表,设计并实现自己的链表。
单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。
如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。
实现 MyLinkedList 类:
MyLinkedList() 初始化 MyLinkedList 对象。
int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1 。
void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点。
void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。
void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中。
void deleteAtIndex(int index) 如果下标有效,则删除链表中下标为 index 的节点。

示例:

输入
[“MyLinkedList”, “addAtHead”, “addAtTail”, “addAtIndex”, “get”, “deleteAtIndex”, “get”]
[[], [1], [3], [1, 2], [1], [1], [1]]
输出
[null, null, null, null, 2, null, 3]

解释

MyLinkedList myLinkedList = new MyLinkedList();
myLinkedList.addAtHead(1);
myLinkedList.addAtTail(3);
myLinkedList.addAtIndex(1, 2); // 链表变为 1->2->3
myLinkedList.get(1); // 返回 2
myLinkedList.deleteAtIndex(1); // 现在,链表变为 1->3
myLinkedList.get(1); // 返回 3

提示:

0 <= index, val <= 1000
请不要使用内置的 LinkedList 库。
调用 get、addAtHead、addAtTail、addAtIndex 和 deleteAtIndex 的次数不超过 2000 。

代码示例:

type MyLinkedList struct {head *MyListNodesize int //链表节点数量
}type MyListNode struct {Val  intNext *MyListNode
}func Constructor() MyLinkedList {return MyLinkedList{}
}// Get 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1
func (l *MyLinkedList) Get(index int) int {if index < 0 || index >= l.size {return -1}current := l.head //头节点为当前节点for i := 0; i < index; i++ {current = current.Next}return current.Val
}// AddAtHead 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点
func (l *MyLinkedList) AddAtHead(val int) {newHeadNode := &MyListNode{Val:  val,Next: l.head,}l.head = newHeadNodel.size++
}// AddAtTail 将一个值为 val 的节点追加到链表中作为链表的最后一个元素
func (l *MyLinkedList) AddAtTail(val int) {newTailNode := &MyListNode{Val: val}if l.head == nil {l.head = newTailNode} else {current := l.headfor current.Next != nil {current = current.Next}current.Next = newTailNode}l.size++
}// AddAtIndex 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中
func (l *MyLinkedList) AddAtIndex(index int, val int) {if index < 0 || index > l.size {return}if index == 0 {l.AddAtHead(val)return}if index == l.size {l.AddAtTail(val)return}newNode := &MyListNode{Val: val}prev := l.head//找插入位置的前一个节点for i := 0; i < index-1; i++ {prev = prev.Next}newNode.Next = prev.Next //更新插入节点的下一个节点prev.Next = newNode      //更新前一个节点的下一个节点l.size++
}// DeleteAtIndex 如果下标有效,则删除链表中下标为 index 的节点
func (l *MyLinkedList) DeleteAtIndex(index int) {if index < 0 || index >= l.size {return}if index == 0 {l.head = l.head.Next} else {prev := l.headfor i := 0; i < index-1; i++ {prev = prev.Next}prev.Next = prev.Next.Next}l.size--
}
http://www.dtcms.com/wzjs/528803.html

相关文章:

  • 软件推广方案廊坊seo关键词排名
  • 提供做网站班级优化大师app
  • 做外贸推广要做哪些平台合肥seo快排扣费
  • 怎样做一张网站的banner收录查询 站长工具
  • 珠海网站制作渠道关键词竞价排名名词解释
  • wordpress 下一页 模板厦门网站流量优化价格
  • 橙子建站客服电话企业qq官方下载
  • 西宁网站建设开发完整html网页代码案例
  • 网站制作公司有哪些证网站优化排名技巧
  • WordPress数据表性能搜索引擎排名优化方法
  • 做网站自己杭州seo优化公司
  • 一个域名能同时做2个网站吗现在最火的推广平台有哪些
  • 手机网站是怎么做的山东企业网站建设
  • 企网官方网站百度app交易平台
  • 网站建设通网站域名注册查询
  • 上海高端网站公司怎么把产品放到网上销售
  • 做自媒体挣钱的网站有哪些百度电视剧风云榜
  • 17网站一起做网店普石家庄网站建设
  • 网站做seo安全吗湖南seo网站开发
  • 呼伦贝尔市住房和城乡建设委网站百度seo系统
  • 大连 响应式网站seo公司是什么
  • 商丘专业做网站谷歌seo一个月费用需要2万吗
  • 铜川网站建设哪家好服装营销方式和手段
  • android 旅游网站开发营销型网站推广方案
  • 石家庄桥西网站制作公司免费的电脑优化软件
  • 做钻石的网站百度网址收录提交入口
  • 网站和域名有关系吗北京关键词快速排名
  • 上海网站排名优化推荐友情链接网站大全
  • 小企业网站建设价格网络营销推广技术
  • 通辽正规网站建设搜索引擎搜索