您当前的位置: 首页 >  链表

衣舞晨风

暂无认证

  • 3浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

双向链表翻转

衣舞晨风 发布时间:2017-09-09 10:00:34 ,浏览量:3

package main

import (
    "fmt"
)

type Node struct {
    NextNode *Node
    LastNode *Node
    Data     interface{}
}

func main() {
    var node0 = new(Node)
    var node1 = new(Node)
    var node2 = new(Node)
    var node3 = new(Node)
    var node4 = new(Node)
    var node5 = new(Node)

    node0.LastNode = nil
    node0.NextNode = node1
    node0.Data = 0

    node1.LastNode = node0
    node1.NextNode = node2
    node1.Data = 1

    node2.LastNode = node1
    node2.NextNode = node3
    node2.Data = 2

    node3.LastNode = node2
    node3.NextNode = node4
    node3.Data = 3

    node4.LastNode = node3
    node4.NextNode = node5
    node4.Data = 4

    node5.LastNode = node4
    node5.NextNode = nil
    node5.Data = 5

    node0.PrintNodes()
    fmt.Println("...")
    // node5.PrintNodes()
    node0.Reverse()
    fmt.Println("...")
    node5.PrintNodes()
}

func (node *Node) Reverse() {
    if node == nil {
        return
    }
    for {
        fmt.Println("4444")
        tempNode := node.NextNode

        node.NextNode = node.LastNode
        node.LastNode = tempNode

        node = node.LastNode
        if node == nil {
            break
        }
    }
}

func (node *Node) PrintNodes() {
    for j := 0; j             
关注
打赏
1647422595
查看更多评论
0.0389s