伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

2021-03-15:手写代码:单链表选择排序。

来源:本站原创 浏览:103次 时间:2022-07-13

2021-03-15:手写代码:单链表选择排序。

福大大 答案2021-03-15:

遍历链表,找出最小元素,链表里删除最小元素,最小元素放在需要返回的链表里。

代码用golang编写,代码如下:

package mainimport "fmt"func main() {    //head := &ListNode{Val: 4}    //head.Next = &ListNode{Val: 2}    //head.Next.Next = &ListNode{Val: 1}    //head.Next.Next.Next = &ListNode{Val: 3}    head := &ListNode{Val: -1}    head.Next = &ListNode{Val: 5}    head.Next.Next = &ListNode{Val: 3}    head.Next.Next.Next = &ListNode{Val: 4}    head.Next.Next.Next.Next = &ListNode{Val: 0}    cur := head    for cur != nil {        fmt.Print(cur.Val, "\t")        cur = cur.Next    }    fmt.Println()    head = SelectSort(head)    cur = head    for cur != nil {        fmt.Print(cur.Val, "\t")        cur = cur.Next    }    fmt.Println()}//Definition for singly-linked list.type ListNode struct {    Val  int    Next *ListNode}//选择排序func SelectSort(head *ListNode) *ListNode {    if head == nil || head.Next == nil {        return head    }    //有换头的可能,所以新增一个虚拟头节点    preAns := &ListNode{}    preAnsEnd := preAns    preHead := &ListNode{Next: head}    //选择    var pre, cur, preSel, sel *ListNode    for preHead.Next != nil {        pre, cur = preHead, preHead.Next        //默认选中第1个节点        preSel, sel = pre, cur        //选最小的,从第2个节点开始        pre, cur = cur, cur.Next        for cur != nil {            if cur.Val < sel.Val {                preSel, sel = pre, cur            }            pre, cur = cur, cur.Next        }        //选中的节点放在答案里        preAnsEnd.Next = sel        //原链表删除选中的节点        preSel.Next = sel.Next        //尾指针指向Next        preAnsEnd = preAnsEnd.Next    }    //虚拟头节点的Next指针就是需要返回的节点    return preAns.Next}

执行结果如下:


力扣148. 排序链表
评论

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net