反轉鍊錶的各種問題

2021-10-09 14:20:16 字數 1044 閱讀 4502

這道題,使用 迭代來做的話比較好理解一些,

迭代法:

class

solution

return newtemp;

}}

當然使用 遞迴法 會利於後續 反轉鍊錶的plus題

遞迴法:

class

solution

}

反轉鍊錶的前n個節點

遞迴法:

class

solution

listnode last =

reverselist

(head.next, n-1)

; head.next.next = head;

head.next = beforenode;

return last;

}}

反轉鍊錶的 第 m ~ n個節點

class

solution

head.next =

reverselist

(head.next, m-

1, n-1)

;return head;

}private listnode reverselist

(listnode head,

int n)

listnode last =

reverselist

(head.next, n-1)

; head.next.next = head;

head.next = beforenode;

return last;

}}

鍊錶的反轉問題

思路 所謂反轉鍊錶就是指將這個鍊錶的所有指標方向反向。採取的辦法是時刻保留連續的3個結點,ppre pcur pnext 修改指標方向 將pcur.next設定為ppre 然後修改ppre pcur pnext向前推進即可 ppre pcur pcur pnext pnext pnext.next ...

LeetCode 反轉鍊錶(鍊錶問題)

難度 簡單 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null使用三個listnode,分別是prev,curr,next。curr是當前指標指向的節點,prev是curr的前乙個節點,頭節點的前乙個節點是null,next是curr的下乙個節點,用於遍歷鍊...

鍊錶反轉問題收集

題目 輸入乙個鍊錶的頭結點,反轉該鍊錶,並返回反轉後鍊錶的頭結點。鍊錶結點定義如下 struct listnode 分析 這是一道廣為流傳的微軟面試題。由於這道題能夠很好的反應出程式設計師思維是否嚴密,在微軟之後已經有很多公司在面試時採用了這道題。為了正確地反轉乙個鍊錶,需要調整指標的指向。與指標操...