| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package algorithm
- import "fmt"
- type Node struct {
- value int
- next *Node
- }
- var head *Node = nil
- func InitList(val int) {
- var cur *Node = nil
- var i int
- for i = 1; i <= val; i++ {
- node := new(Node)
- node.value = i
- node.next = nil
- if head == nil {
- head = node
- cur = node
- } else {
- cur.next = node
- cur = node
- }
- }
- }
- func PrintList() {
- // 打印链表
- fmt.Print("list:")
- node := head
- for {
- fmt.Printf("%d ", node.value)
- if node.next == nil {
- break
- }
- node = node.next
- }
- fmt.Println()
- }
- func ReverseList() {
- var header *Node
- var next *Node
- var pre *Node
- header = head
- next = nil
- pre = nil
- // 翻转列表
- for {
- if header == nil {
- break
- }
- next = header.next
- header.next = pre
- pre = header
- header = next
- }
- head = pre
- }
- func Test(size int) {
- InitList(size)
- PrintList()
- ReverseList()
- PrintList()
- }
|