zoukankan      html  css  js  c++  java
  • go 实现单链表反转

    go实现单链表翻转

    package main
    
    import "fmt"
    
    type ListNode struct {
    	data interface{}
    	Next *ListNode
    }
    
    //反转单链表
    func reverseList(head *ListNode) *ListNode {
    	cur := head
    	var pre *ListNode
    	for cur != nil {
    		cur.Next, pre, cur = pre, cur, cur.Next
    	}
    	return pre
    }
    
    func CreateNode(node *ListNode, max int) {
    	cur := node
    	for i := 1; i < max; i++ {
    		cur.Next = &ListNode{}
    		cur.Next.data = i
    		cur = cur.Next
    	}
    }
    
    //打印链表的方法
    func PrintNode(info string, node *ListNode) {
    	fmt.Print(info)
    	for cur := node; cur != nil; cur = cur.Next {
    		fmt.Print(cur.data, " ")
    	}
    	fmt.Println()
    }
    
    func main() {
    	var head = new(ListNode)
    	CreateNode(head, 10)
    	PrintNode("前:", head)
    	yyy := reverseList(head)
    	PrintNode("后:", yyy)
    
    }
    

      

  • 相关阅读:
    Docker Get Started VI
    Docker Get Started V
    Docker Get Started III
    Docker Get Started IV
    Docker Get Started II
    Docker Get Started I
    贝叶斯公式
    LRU缓存
    二进制中1的个数
    2.准备工作之Gradle
  • 原文地址:https://www.cnblogs.com/qstudy/p/10765528.html
Copyright © 2011-2022 走看看