反轉鍊錶與反轉鍊錶中的某一段

2021-10-03 08:59:05 字數 1154 閱讀 6742

反轉鍊錶。請使用一趟掃瞄完成反轉。

public

static

void

main

(string[

] args)

private

static node reverse

(node head)

node previous = null;

//將null節點當作head的上一節點

node current = head, next;

while

(current != null)

return previous;

}

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。

1 ≤ m ≤ n ≤ 鍊錶長度。

輸入: 1->2->3->4->5->null, m = 2, n = 4

輸出: 1->4->3->2->5->null

思路:使用迭代的方式,通過使用兩個 node 來標記反轉鍊錶的頭和尾,大體思路和反轉鍊錶時一致,且該方法空間複雜度較低為o( 1 ),時間複雜度為o( n )。

public

static

void

main

(string[

] args)

private

static node reversebetween

(node head,

int startindex,

int endindex)

node previous = null,next=null, endpre, start;

//雙指標記錄起始的兩個節點的前節點

endpre = current;

//開始反轉的前乙個節點

start = current = current.nextnode;

//反轉的頭節點

while

(startindex != endindex+1)

//將反轉的起點的下一節點指向

start.nextnode = current;

endpre.nextnode = previous;

return nullnode.nextnode;

}

反轉鍊錶與分組反轉鍊錶

經典的反轉鍊錶,先上 public class listnode public class printlist system.out.println public class reverse public listnode reverse listnode root listnode pre nul...

鍊錶 反轉鍊錶

問題 兩兩交換鍊錶中的節點 問題 k 個一組翻轉鍊錶 問題鏈結 利用棧先進後出的特性,遍歷鍊錶,將每個結點加入棧中,最後進行出棧操作,先出棧的結點指向臨近的後出棧的結點。definition for singly linked list.struct listnode class solution ...

鍊錶 鍊錶反轉I

package com.hnust.reversal public class listnode public listnode int value,listnode next override public string tostring 我們可以通過把鍊錶中鏈結節點的指標反轉過來,從而改變鍊錶的...