LinkedList与链表反转
2016-04-12 16:14
246 查看
题一:取出LinkedList的中间数
LinkedList底层是链表Node(E).
常用函数有size(), add(), clear(), contain(), get(), getFirst(), getLast().
用size = list.size(), list.get(size/2)即取出中间数的element.
题二:链表反转
对于一个链表,实现反转。比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a 。
java源码如下:
还有一种方法:利用Collecionts.reverse(List<?> list)
java源码如下:
<pre name="code" class="java"> List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
System.out.println();
Collections.reverse(list);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
运行结果如下:
12345
54321
补充说明:链表反转还有一种递归方式,留作以后学习,见文献1。
参考文章:
1、http://blog.csdn.net/beiyetengqing/article/details/7596554
LinkedList底层是链表Node(E).
常用函数有size(), add(), clear(), contain(), get(), getFirst(), getLast().
用size = list.size(), list.get(size/2)即取出中间数的element.
题二:链表反转
对于一个链表,实现反转。比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a 。
java源码如下:
class Node{ char value; Node next; } //非递归实现 public Node reverse(Node current) { Node previous = null; Node next = null; while (current != null) { //存储下一节点 next = current.next; current.next = previous; //反转 //更新遍历节点 previous = current; current = next; } return current; }
还有一种方法:利用Collecionts.reverse(List<?> list)
java源码如下:
<pre name="code" class="java"> List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
System.out.println();
Collections.reverse(list);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
运行结果如下:
12345
54321
补充说明:链表反转还有一种递归方式,留作以后学习,见文献1。
参考文章:
1、http://blog.csdn.net/beiyetengqing/article/details/7596554
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- asp.net中控制反转的理解(文字+代码)
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- Java反转字符串和相关字符编码的问题解决
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- php实现字符串反转输出的方法
- PHP小教程之实现链表
- PHP中模拟链表和链表的基本操作示例
- C语言双向链表的表示与实现实例详解
- 链表集合