单链表练习2--倒置或者翻转
2017-10-04 15:35
232 查看
单链表的倒置,就是将单链表翻转过来,
最后一个节点当成是第一个节点,以此类推。
重新生成一个新的链表,只在第0个位置插入可以实现
下面给出一个数组翻转的参考函数
最后一个节点当成是第一个节点,以此类推。
重新生成一个新的链表,只在第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]));
相关文章推荐
- Java 倒置(翻转)链表的两种实现
- C语言单向链表的创建、释放、插入、删除、翻转操作练习
- 日常练习:lintcode35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- leetcode解题之24. Swap Nodes in Pairs java 版(成对翻转链表)
- 链表——翻转
- 链表翻转的递归和非递归算法
- 构建链表及链表翻转
- [leetcode 24]Swap Nodes in Pairs-----成对翻转链表中的节点
- 数据结构练习--双向链表的实现
- LintCode入门练习——466. 链表节点计数
- 单项链表翻转
- C链表练习时对指针的深刻理解
- 翻转链表
- 链表翻转的两种方法(递归+非递归)
- 复杂链表的复制练习
- 链表判环练习
- 链表相邻元素翻转
- [1001]以实际案例说链表遍历与 翻转