劍指offer 15 反轉鍊錶

2021-10-03 12:43:41 字數 518 閱讀 7629

題目

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

解題思路

假設當前指標 i 指向鍊錶中第 i 個結點;指標 j 指向第 i-1 個結點,0~i-1為已反轉部分;指標 k 指向 i+1 個結點,i+1 至煉表尾為尚未反轉的節點。

將 i 節點next 指向 j,將三個指標向前移一位。

重複以上操作直至 i 指向 null。

**實現

public listnode reverselist

(listnode head)

listnode p = head;

listnode q = head.next;

listnode nhead = null;

while

(q != null)

p.next = nhead;

return p;

}

劍指offer 15 反轉鍊錶

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

劍指Offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回listnode def reverselist self,phead writ...

劍指offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。include using namespace std struct listnode class solution class solution1 return pfront1 else pnode next new listnode num int ...