005 反轉部分單向鍊錶

2021-09-19 16:21:12 字數 823 閱讀 2589

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 ...