問題:輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
輸入:煉表頭節點
輸出:新鍊錶的表頭
思路:
如上圖,可以乙個乙個地把鍊錶節點的next指標修改,注意的是,在修改之後,鍊錶節點無法訪問到之前的next指標指向的節點,必須要在修改指標前將其儲存下來。
共需要三個指標,分別指向當前遍歷到的節點,前乙個節點,後乙個節點。
**:
/*
struct listnode
};*/
class solution
pnode->next=pprev;
pprev=pnode;
pnode=pnext;
}return preversehead;}};
複雜度分析:時間複雜度為o(n),空間複雜度為o(1)。 劍指offer 面試題24 反轉鍊錶
完整 位址 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點 很簡單,單純考察 的魯棒性 要針對區分成以下三種情況處理 1.輸入的煉表頭指標為null 2.輸入的鍊錶只有乙個節點 3.輸入的鍊錶有多個節點 正常情況 public static class listnode pu...
劍指offer 面試題24 鍊錶反轉
題目 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。思路 需要定義三個節點,當前節點pnode,前一節點ppre,和後一節點pnext。要將當前節點的下一節點pnode next用下一節點儲存起來,避免在反轉時發生鍊錶斷裂。然後將當前節點指向前一節點,然後將當前節點的指標移到下一節點,前一節點和下一...
《劍指offer 面試題24 反轉鍊錶》
劍指offer 面試題24 反轉鍊錶 註明 僅個人學習筆記 反轉鍊錶 public class reverselist24 鍊錶節點唯一時,返回頭節點 if head.next null node preversehead null node pnode head node prenode null...