链表之反转部分单向链表
生活随笔
收集整理的這篇文章主要介紹了
链表之反转部分单向链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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&
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的链表之反转部分单向链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之JNI的使用
- 下一篇: 微信企业号开发之如何建立连接