Golang遞迴實現鍊錶反轉

2022-09-14 23:39:35 字數 993 閱讀 5046

反轉前的鍊錶:a->b->c->d->e->f->g->h->i->j->k->l->m->n->o->p->q->r->s->t->u->v->w->x->y->z

反轉後的鍊錶:z->y->x->w->v->u->t->s->r->q->p->o->n->m->l->k->j->i->h->g->f->e->d->c->b->a

package main

import

"fmt

"type list

struct

func main()

}fmt.print(

"反轉前的鍊錶:")

show(head)

recursion(head)

fmt.print(

"反轉後的鍊錶:")

show(last)

fmt.println("\n

")}//

遞迴反轉

func recursion(l *list, parme ...int) *list

}//節點不存在返回空,也就是最後乙個節點的next值

if l ==nil

//通過遞迴,獲取到下乙個節點的值

next := recursion(l.next, parme[0]+1

)

//最後乙個則返回當前節點

if next ==nil

// next.next =l

if parme[0] == 0

//返回當前節點

returnl}

//生成鍊錶值

func generatelist(l *list, value string) *list

}l.next = &list

return

l.next}//

顯示鍊錶的值

func show(l *list)

l =l.next

}fmt.println()

}

遞迴實現鍊錶的反轉

我對遞迴的理解一直不是非常透徹,這裡想要用遞迴實現鍊錶的反轉,寫的時候發現自己連鍊錶的定義都忘記了 還是 寫得太少了 include stdio.h include include iostream using namespace std struct node node creat int a r...

遞迴(鍊錶反轉)

將乙個單鏈表反轉,結果得到的是鍊錶的最後乙個,以及第乙個。確實是反轉了,但是只剩下兩個元素了。public static node reversenode node node node newheadnode reversenode node.getnext node.setnext null ne...

反轉鍊錶 遞迴和非遞迴實現

include stdafx.h include include struct node void createlink node head,int data void printlink node head void reverselink node head node reverselink n...