package com.chenyu.zuo.linkedlist;
import com.chenyu.zuo.linkedlist.removebyratio.node;
/** * 題目:給定乙個單向鍊錶的頭結點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、如果鍊錶長度為n,時間複雜度要求為o(n),額外空間複雜度要求為o(1)
* 2、如果不滿足1<=from<=to<=n,則不調整
* * 思路:先判斷是否滿足1<=from<=to<=n
* 先找到from-1個節點fpre,和to+1個節點tpos,fpre,tpos分別是反轉的前乙個節點和後 乙個節點,反準部分反轉後
* 然後連線fpre和tpos,如果fpre為null,則說明反轉部分包含頭結點,則返回新的頭結點,也就是沒反轉之前反轉部分
* 的最後乙個節點,如果fpre不為null,子返回舊的頭結點
* @author think
* */
public class reversepart {
public static class node{
public int value;
public node next;
public node(int value){
this.value&
反轉部分單向鍊錶
給定乙個單向鍊錶的頭節點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 ...