您的位置:首页 > 其它

单链表练习2--倒置或者翻转

2017-10-04 15:35 232 查看
单链表的倒置,就是将单链表翻转过来,

最后一个节点当成是第一个节点,以此类推。

重新生成一个新的链表,只在第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]));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: