单链表的遍历和逆转
来源:互联网 发布:oracle sql select as 编辑:程序博客网 时间:2024/06/05 21:12
public class Test {
public static void main(String[] args) {
LNode linklist = new LNode("a");
LNode b = new LNode("b");
LNode c = new LNode("c");
LNode d = new LNode("d");
LNode e = new LNode("e");
LNode f = new LNode("f");
linklist.setNext(b);
b.setNext(c);
c.setNext(d);
d.setNext(e);
e.setNext(f);
f.setNext(null);
visit(linklist);
visit(reverse(linklist));
}
public static void visit(LNode linklist) {
LNode p = linklist;
while (p != null) {
System.out.println(p.getContent());
p = p.getNext();
}
}
public static LNode reverse(LNode linklist) {
if (linklist == null)
return linklist;
LNode head = linklist;
LNode previous = null;
while(head!=null)
{
LNode temp = head.getNext();
head.setNext(previous);
previous = head ;
head = temp;
}
return previous ;
}
}
class LNode {
String content;
LNode next;
public LNode(String content) {
this.content = content;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public LNode getNext() {
return next;
}
public void setNext(LNode next) {
this.next = next;
}
}
public static void main(String[] args) {
LNode linklist = new LNode("a");
LNode b = new LNode("b");
LNode c = new LNode("c");
LNode d = new LNode("d");
LNode e = new LNode("e");
LNode f = new LNode("f");
linklist.setNext(b);
b.setNext(c);
c.setNext(d);
d.setNext(e);
e.setNext(f);
f.setNext(null);
visit(linklist);
visit(reverse(linklist));
}
public static void visit(LNode linklist) {
LNode p = linklist;
while (p != null) {
System.out.println(p.getContent());
p = p.getNext();
}
}
public static LNode reverse(LNode linklist) {
if (linklist == null)
return linklist;
LNode head = linklist;
LNode previous = null;
while(head!=null)
{
LNode temp = head.getNext();
head.setNext(previous);
previous = head ;
head = temp;
}
return previous ;
}
}
class LNode {
String content;
LNode next;
public LNode(String content) {
this.content = content;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public LNode getNext() {
return next;
}
public void setNext(LNode next) {
this.next = next;
}
}
0 0
- 单链表的遍历和逆转
- 单链表的原地逆转 (只遍历一次)
- 单链表的创建和逆转
- 单链表的创建、遍历、插入、删除、查找、逆转
- 算法和数据结构单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的就地逆转
- 单链表的逆转
- 单链表的逆转实现
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 联想G480 i3 2348M扩展内存
- 贪心算法之最大不相交区间数问题
- <深入浅出mfc>第9章和第10章
- [Unix下C/C++开发] unix编程书籍推荐
- 《Windows 驱动程序开发与调试》
- 单链表的遍历和逆转
- USACO 2.2 Party Lamps (lamps)
- CoreData 多线程下NSManagedObjectContext的使用
- OpenStack Hacker养成指南
- Android获取屏幕分辨率及DisplayMetrics
- Java面试基础
- 电脑死机,虚拟机里面的系统开不了
- COM创建对象方法
- AD软件使用技巧和PCB制作技巧