劍指offer 題15(反轉鍊錶)

2021-10-06 15:23:32 字數 716 閱讀 7903

反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:# 返回listnode

defreverselist

(self, phead)

:# write code here

ifnot phead or

not phead.

next

:return phead

# 此處寫作node=phead,nex=phead.next會提示超時,因為頭結點的next需要置為null,否則遍歷時會無限迴圈

node =

none

nex = phead

while nex!=

none

: temp = nex.

next

nex.

next

= node

node = nex

nex = temp

return node

15 劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。分析 1 2 3 4 5 1 2 3 4 5 而且這個題難在沒有頭節點 第一種方法是 非遞迴方法 struct listnode class solution return preversehead 第二種方法是 遞迴方法 struct listnode ...

15 反轉鍊錶(劍指offer)

15.反轉鍊錶 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.思路 這裡可以採用輔助指標的方式來進行歷求解,以下面的鍊錶為例具體分析如下 1 首先我們需要定義三個指標,分別指向當前結點 cur 前一結點 prev 後一節點 next 2 然後開始從前往後進行遍歷,在遍歷的過程中對指標進行反轉 第...

劍指offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。反轉鍊錶只需改變鏈結方向,改變方向時需要將原本指向後乙個結點的鏈結方向指向前乙個結點,因此需要記錄下三個結點。include using namespace std struct listnode class solution listnode fron...