給定乙個單向鍊錶的頭節點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->null
1:要求時間的複雜度為o(n),額外的空間複雜度為o(1)
2:如果不滿足1<=from<=to<=n,則不用調整
1:先判斷是否滿足1<=from<=to<=n,如果不滿足,直接返回原來的頭節點
2:找到第from-1個節點pre和第to+1個節點pos,pre即是要反轉部分的前乙個節點,pos即是反轉部分的後乙個節點,把反轉的部分先反轉,然後正確的連線pre和pos。
3:如果pre為null,說明反轉的部分是含有頭節點的,則返回的新的節點,即是反轉前的最後乙個節點,也是反轉後的第乙個節點,如果pre不為null,則直接返回舊的頭節點。
反轉部分單向鍊錶
說明 本文是左程雲老師所著的 程式設計師面試 指南 第二章中 反轉部分單向鍊錶 這一題目的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 ...
005 反轉部分單向鍊錶
package com.my.util 單向鍊錶節點 public class singlenode package com.my.suanfa import com.my.util.singlenode 反轉部分單向鍊錶 時間複雜度o n 額外空間複雜度o 1 public class solut...