go中单链表
package main import (
"fmt"
) type ListNode struct {
Val int
Next *ListNode
}
type List struct {
headNode *ListNode //头节点
} func main() { //res := letcode.Divide(434, 423)
//fmt.Println(res) headNode := &ListNode{} listData := headNode
Insert(1, listData, headNode)
Insert(2, listData, headNode)
Insert(4, listData, headNode) res := Find(2, listData)
fmt.Println(res) //listData2 := headNode
//
//Insert(4, listData2, headNode)
//Insert(3, listData2, headNode)
//Insert(2, listData2, headNode) //PrintList(listData) //res := MergeTwoLists(listData, listData2)
//fmt.Println(res)
} //删除节点
func Delete(value int, list *ListNode) {
pPrev := FindPrevious(value, list)
_ = pPrev
p := Find(value, list)
pPrev = p.Next
p = nil
} // FindPrevious ...
func FindPrevious(value int, list *ListNode) *ListNode {
p := list
for p.Next != nil && p.Next.Val != value {
p = p.Next
}
return p
} // 找出链表里面的(不安全)
func Find(value int, list *ListNode) *ListNode { p := list
for p.Val != value {
p = p.Next
}
return p } // 测试是否为最后节点 ...
func IsLast(list *ListNode) bool {
return list.Next == nil
} // 测试链表是否为空 ...
func isEmpty(list *ListNode) bool {
return list == nil
} // 打印链表 ...
func PrintList(list *ListNode) { if list.Next != nil {
fmt.Println(list.Val)
PrintList(list.Next)
} else {
fmt.Println(list.Val)
}
} // 合并两个有序的单链表 ...
func MergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
var res *ListNode
if l1.Val >= l2.Val {
res = l2
res.Next = MergeTwoLists(l1, l2.Next)
} else {
res = l1
res.Next = MergeTwoLists(l1.Next, l2)
}
return res
} // 插入节点 头插法
func Insert(value int, list *ListNode, position *ListNode) {
tempCell := new(ListNode)
//fmt.Println("++++", tempCell)
if tempCell == nil {
fmt.Println("out of space!")
}
tempCell.Val = value
tempCell.Next = position.Next
position.Next = tempCell
}
go中单链表的更多相关文章
- C++中单链表的建立和操作
准备数据 准备在链表操作中需要用到的变量及数据结构 示例代码如下: struct Data //数据结点类型 { string key; //关键字 string name; int age; }; ...
- Leetcode中单链表题总结
以下是个人对所做过的LeetCode题中有关链表类型题的总结,博主小白啊,若有错误的地方,请留言指出,谢谢. 一.有关反转链表 反转链表是在单链表题中占很大的比例,有时候,会以各种形式出现在题中,是比 ...
- 【python中单链表的实现】——包括初始化、创建、逆序、遍历等
# coding=utf-8 class mynode(object): def __init__(self, data, nextnode = None): self.data = data sel ...
- JAVA 链表操作:循环链表
主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...
- java实现单链表常见操作
一.概述: 本文主要总结单链表常见操作的实现,包括链表结点添加.删除:链表正向遍历和反向遍历.链表排序.判断链表是否有环.是否相交.获取某一结点等. 二.概念: 链表: 一种重要的数据结构,HashM ...
- Java实现链表的常见操作算法
链表分为单链表,双向链表和循环链表,是一种链式存储结构,由一个个结点链式构成,结点包含数据域和指针域,其中单链表是只有一个指向后驱结点的指针,双向链表除头结点和尾结点外,每个结点都有一个前驱指针和一个 ...
- PTA之求单链表结点的阶乘和
本题要求实现一个函数,求单链表L结点的阶乘和.这里默认所有结点的值非负,且题目保证结果在int范围内. 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int ...
- 无头结点的单链表(C语言)
1.单链表: 在顺序表中,用一组地址连续的存储单元来一次存放线性表的结点,因此结点的逻辑顺序与物理顺序是一致的.但链表却不同,链表是用一组任意的存储单元来存放 线性表的结点,这组存储单元可以是连续的, ...
- PTA基础编程题目集6-6求单链表结点的阶乘和(函数题)
本题要求实现一个函数,求单链表L结点的阶乘和.这里默认所有结点的值非负,且题目保证结果在int范围内. 函数接口定义: int FactorialSum( List L ); 其中单链表List的定义 ...
随机推荐
- Delphi7安装
在学习和使用Delphi之前,我们要先安装它的开发环境,本机系统为Win7 32.下面我简要介绍一下它的安装过程. (1)下载Delphi7并解压,双击setup.exe可执行文件开始安装. (2)开 ...
- you-get 下载视频
亲测有效,没在别的平台试,道理是相通的 平台:Windows 10 所需工具: python3,pip3,you-get 步骤流程: 正确安装python3,配置环境变量 (目前使用的是3.6+) 打 ...
- canvas绘制随机验证码
效果图: 思路: 1, 绘制canvas画布,进行基础设置 2.绘制一个矩形 3.设置验证码的随机数 4.设置验证码随机数的随机颜色 5.绘制随机干扰线 6,绘制随机干扰点 经过以上六个步骤,验证码的 ...
- tp5.0隐藏路由后缀index.php
一开始的路由是有index.php结尾的 接下来开始修改主要文件
- SpringBoot实现跨域
一.什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样.说白了就是ip.网络协议.端口都一样的时候,就是同一个域,否则就是跨域.这是由 ...
- Linux常用文件操作命令
一.进入文件夹 格式:cd [目录名称] 常用选项: cd / 进入当前目录 cd .. 返回上一级目录. cd ../.. 将当前目录向上移动两级. cd - 返回最近访问目录. 二.显示 ...
- Far manager界面混乱问题解决
刚装完,win7和XP上运行,都是界面混乱,看到网上说是属性里改字体,改编码,我试了半天不行: 最后发现,需要far.exe创建快捷方式,在快捷方式的属性里设置字体,编码,窗口大小,废话不多说,上图: ...
- Appium环境搭建——安卓真机调试注意点
1.安卓设备连接失败 通过adb devices命令 查看安卓设备的连接情况,如图,未成功连接 解决方法: (1)关闭360安全卫士和360手机助手(2)查看5037端口是否被占用 netstat - ...
- MATLAB EMD 初始
帮小伙伴研究这个 随便写写 安装参考https://blog.csdn.net/qrlhl/article/details/52213135 函数学习: disp函数 : 1.disp函数:显示文本 ...
- python中讲的好的内容记载
什么是Name_mangling以及python的下划线约定 (转载来源:https://blog.csdn.net/handsomekang/article/details/40303207)