为了账号安全,请及时绑定邮箱和手机立即绑定

使用 golang 的列表中最后一个元素的第 K 个

使用 golang 的列表中最后一个元素的第 K 个

Go
慕桂英3389331 2021-09-10 21:24:28
我有代码可以从 golang 列表中的最后一个元素中找到第 k 个。我写了一个递归函数。当它到达列表的末尾时,它会将计数返回为 1,并在进一步返回时递增。当 count == k 时返回节点值。但我收到“零指针取消引用”错误。有人可以帮助我吗?package main    import (    "container/list"    "fmt")var sMap map[int]boolfunc main() {    l := list.New()    for i := 1; i < 100; i++ {        l.PushBack(i)    }        kFromLastElemRec := findKFromLastRecr(l.Front(), 3, WrapObj{0})    fmt.Println(kFromLastElemRec.Value.(int))    }//Object to store the count type WrapObj struct {    count int}//ERROR//recursive function to find the kth from last elementfunc findKFromLastRecr(head *list.Element, k int, wrapper WrapObj) *list.Element {    if head == nil {        return nil    }    resNode := findKFromLastRecr(head.Next(), k, wrapper)    wrapper.count = (wrapper.count) + 1    if wrapper.count == k {        return head    }    return resNode}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信