單鏈表練習2--倒置或者翻轉

單鏈表的倒置,就是將單鏈表翻轉過來,

最後一個節點當成是第一個節點,以此類推。

重新生成一個新的鏈表,只在第0個位置插入可以實現

/*測試函數*/
function test(arr) {
	var link_list = new LinkedList();
	for(var i=0; i<arr.length; ++i) {
		link_list.append(arr[i]);
	}

	return link_list;
}

function linkedListReverse(linked_list) {
	var new_linked_list = new LinkedList();

	var current = linked_list.getHead();
	while(current != null) {
		new_linked_list.insert(0, current.element);
		current = current.next;
	}

	return new_linked_list;
}

var arr = [10, 20, 30, 40];
var result = test(arr);
result.print();
var result_reverse = linkedListReverse(result);
result_reverse.print();


下面給出一個數組翻轉的參考函數

// arr.reverse()
function arrReverse(arr) {
	var cnt = Math.floor(arr.length / 2);
	var temp;
	var len = arr.length - 1;
	for(var i=0; i<cnt; ++i) {
		temp = arr[i];
		arr[i] = arr[len-i];
		arr[len-i] = temp;
	}

	return arr;
}

console.log(arrReverse([1, 2, 3, 4]));
console.log(arrReverse([1, 2, 3, 4, 5]));



發佈了88 篇原創文章 · 獲贊 37 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章