鍊錶之反轉部分單向鍊錶

2021-07-09 02:25:29 字數 896 閱讀 6722

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