package com.my.util;
/** * 單向鍊錶節點
* */
public
class
singlenode
}
package com.my.suanfa;
import com.my.util.singlenode;
/** * 反轉部分單向鍊錶
* 時間複雜度o(n),額外空間複雜度o(1)
* */
public
class
solution02
//邊界條件判斷
if(from <
1|| from > to || to > len)
//fpre為空則說明要反轉的部分包含頭結點,頭結點就是要反轉部分的第乙個節點,pre記錄要反轉部分的第乙個節點
singlenode pre =
(fpre == null)
? head : fpre.next;
//cur記錄當前節點
cur = pre.next;
//將tpose賦值為pre的後繼節點,pre完成反轉
pre.next = tpos;
//定義節點記錄後繼節點
singlenode next = null;
while
(cur != tpos)
if(fpre != null)
//否則說明反轉部分包括頭結點,返回新的頭結點,新的頭結點為翻轉部分的最後乙個節點
return pre;
}}
反轉部分單向鍊錶
給定乙個單向鍊錶的頭節點head,以及兩個整數from和to,在單項鍊表上把第from個節點到to個節點的這一部分進行反轉。例如 1 2 3 4 5 null from 2,to 4 調整結果為1 4 3 2 5 null 再如1 2 3 null from 1,to 3 調整結果為3 2 1 nu...
反轉部分單向鍊錶
說明 本文是左程雲老師所著的 程式設計師面試 指南 第二章中 反轉部分單向鍊錶 這一題目的c 復現。本文只包含問題描述 c 的實現以及簡單的思路,不包含解析說明,具體的問題解析請參考原書。感謝左程雲老師的支援。題目 給定乙個單向鍊錶的頭節點 head,以及兩個整數 from 和 to,在單向鍊錶上把...
反轉部分單向鍊錶
給定乙個單向鍊錶的頭節點head,以及兩個整數from和to,在單向鍊錶上把第from個節點到第to個節點這一部分進行反轉。例如 1 2 3 4 5 6 null,from 3,to 5 調整結果為 1 2 5 4 3 6 null 1 2 3 null,from 1,to 3 調整結果為 3 2 ...