六種鍊錶反轉方式

2021-10-10 06:36:57 字數 2613 閱讀 2553

鍊錶的反轉有很多種玩法,這裡主要介紹:

文字原始碼:singlylinkedlistreverse

測試案例:listreversetest

主要原始碼

public

int[

]reverse_array

(singlylinkedlist listlj);}

nodelj node = listlj.head.next;

int[

] array =

newint

[listlj.head.value]

;for

(int i = listlj.head.value -

1; i >=

0; i--

)return array;

}

主要原始碼

public

int[

]reverse_sysstack

(singlylinkedlist listlj);}

nodelj node = listlj.head.next;

int[

] array =

newint

[listlj.head.value]

;sysstack

(node, array, listlj.head.value -1)

;return array;

}private

int[

]sysstack

(nodelj nodelj,

int[

] arr,

int depth)

return arr;

}

主要原始碼

public

int[

]reverse_point

(singlylinkedlist listlj);}

nodelj node = listlj.head.next;

nodelj node_pre;

nodelj head = null;

while

(node != null)

listlj.head.next = head;

int[

] array = listlj.

toarray()

;return array;

}

主要原始碼

public

int[

]reverse_sysstack2

(singlylinkedlist listlj);}

nodelj node = listlj.head.next;

listlj.head.next =

sysstack

(node)

;int

array = listlj.

toarray()

;return array;

}private nodelj sysstack

(nodelj nodelj)

nodelj n =

sysstack

(nodelj.next)

; nodelj.next.next = nodelj;

nodelj.next = null;

return n;

}

主要原始碼

private

void

revert

(singlylinkedlist listlj,

int index1,

int index2)

nodelj prein = node;

nodelj next;

nodelj pre1 = node;

node = node.next;

prein.next = null;

//這一步很重要,不然會引起指標迴圈

count++

;//node 節點需要超過 index2,在index2 的右邊一位

while

(count <= index2)

preout.next = pre1;

prein.next = node;

}

主要原始碼

public

int[

]revert_partn

(singlylinkedlist listlj,

int n);}

if(listlj.head.value ==

0|| n >= listlj.head.value || n ==1)

int loop =0;

//注意迴圈的位置,因為從0開始,所以取不到 listlj.head.value

while

(loop + n -

1< listlj.head.value)

int[

] array = listlj.

toarray()

;return array;

}

六種基本排序方式

package new03 public class demo4 sop 原序列的結果是 for int x nums sop n selectsort nums insertsort nums bubblesort nums quicksort nums shellsort nums heapso...

建立物件六種方式

newobject var x age var obj new object obj.name gao obj.x 18 字串 obj x 16 變數 console.log obj 字面量 物件 中 proto 函式 中 prototype var x hooby var obj obj.男 ob...

六種方式實現hibernate查詢

hibernate查詢的6種方法。分別是hql查詢 物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢。1 hql查詢 hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例 static void query ...