記錄 一道單鏈表逆置題(智商真的不夠用,沒救了)

2021-09-12 13:32:48 字數 1043 閱讀 6580

大佬們發來這樣一道面試題,三行三句**,完成單鏈表逆置功能。

一開始我的想法,是在reverse(node head)這個方法裡遞迴,在後乙個reverse方法裡完成具體逆置操作。

於是在後乙個reverse方法裡,我是這麼寫的:

node newnode = next.node;

next.node = cur;

這樣就完成了單個節點的逆置

但是在第乙個reverse方法裡,反覆試了好幾次遞迴,都有問題,一次棧溢位(說明無限遞迴了),一次空指標,一次沒有逆置成功。

於是我開始懷疑是不是我的遞迴寫錯了地方。

當時比較懶,沒有順手拿張紙畫一畫,靠腦袋硬想。後來大佬給了個提醒,然後重新寫了乙個解法,好用了,逆置成功。

**如下:

public

class

node

public

static node reverse

(node head)

public

static node reverse

(node cur , node next)

node newnode =

reverse

(next,next.next)

; next.next = cur;

return newnode;

}public

static

void

main

(string[

] args)

}

所以,第乙個reverse方法只是乙個幌子,精華還是在第二個reverse方法中。

先遞迴把next節點後面的節點全部逆置完成,然後把next節點指向cur節點即可。

其實挺簡單的乙個理,寫好之後馬上就明白怎麼回事了。

但就是智商不夠用,真的沒救了。

每天作死一道題 單鏈表的逆轉

6 1 單鏈表逆轉 20 分 本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l...

每天作死一道題 求單鏈表的長度

6 3 求鏈式表的表長 10 分 本題要求實現乙個函式,求鏈式表的表長。函式介面定義 int length list l 其中list結構定義如下 typedef struct lnode ptrtolnode struct lnode typedef ptrtolnode list l是給定單鏈表...

6 1 帶頭結點的單鏈表就地逆置(函式題)

本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。函式介面定義 void listreverse...