算法导论习题:10.2-7 in Go语言
来源:互联网 发布:国税发票打印软件 编辑:程序博客网 时间:2024/06/06 13:07
10.2-7题:给出一个时间复杂度为O(n)的非递归过程,实现对一个含n个元素的单链表的逆转。
程序的主要思想就是,转变指标的指向,例如原本是1->2->3->4,现在变成1<-2<-3<-4,就实现了逆转
package mainimport ("fmt")type Node struct { next *Node data int}type List struct { first *Node}func (l *List) Insert(d int) { node := &Node{nil, d} node.next = l.first l.first = node }func revise(l *List) { if l.first == nil { return } curr := l.first next := curr.next curr.next = nil for { last := curr curr = next next = curr.next curr.next = last if next == nil { l.first = curr break } } }func printList(l *List) { if l.first == nil { fmt.Println("the list is empty") return } fmt.Print("list: ") for node := l.first; node != nil; { fmt.Printf("[%d]", node.data) node = node.next } fmt.Print("\n")}func main() { list := &List{nil} for i := 0; i < 10; i++ { list.Insert(i) } printList(list) revise(list) printList(list) }
0 0
- 算法导论习题:10.2-7 in Go语言
- 算法导论习题:10.3-4 in JAVA
- 算法导论 习题 10.2
- 算法导论习题14.1-7
- 算法导论习题2.3-7
- 算法导论习题2.3-7
- 算法导论习题7-6
- 算法导论2.3-7习题
- 算法导论习题[Exercises 9.3-7 ]
- 算法导论习题7-3 Stooge-Sort
- 算法导论第九章习题9.3-7
- 算法导论 2-3-7 习题
- 算法导论 第7章 课后习题
- 算法导论习题
- 算法导论 习题 10.1
- 算法导论 习题 10.3
- 刘汝佳黑书 算法导论习题
- 算法导论习题
- 百度地图-根据起终点经纬度驾车导航
- 动态注册广播
- iOS --- UIcollectionView设置头尾
- 搭建Embedded Linux kernel环境--在QEMU上运行ARM linux系统
- 给 Android 开发者的 RxJava 详解
- 算法导论习题:10.2-7 in Go语言
- iOS ---UICollectionView简单使用
- UVa 11292 Dragon of Loowater
- mac 下安装wget
- R文件丢失
- NOIP2008普及组题解
- 基于storm的实时数据处理方案
- perl lwp 超时问题
- Android中Application类用法