java实现链表的反转
来源:互联网 发布:caffe 继续训练 编辑:程序博客网 时间:2024/05/16 00:40
摘要
最近笔试一家公司,其中一道题目:如何用java实现链表的反转,如:{a,b,c,d}反转后变为:{d,c,b,a},只能操作一个链表。 当时不晓得怎么做。还以为使用栈来实现。图样图森破。
public class Node
{private Node next;
private String value;
public Node(String value){
this.value=value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static void main(String[] args)
{
Node head=new Node("a");
Node node1=new Node("b");
Node node2=new Node("c");
Node node3=new Node("d");
//初始化链表
head.setNext(node1);
node1.setNext(node2);
node2.setNext(node3);
System.out.println("打印链表反转前:");
reverse(head);
//设置head的下一个元素为null,注意:此时head已经成为链表尾部元素。
head.next=null;
while(node3!=null){
System.out.print(node3.getValue());
node3=node3.getNext();
if(node3!=null){
System.out.print("->");
}
}
}
/**
* 利用迭代循环到链表最后一个元素,然后利用nextNode.setNext(head)把最后一个元素变为
* 第一个元素。
*
* @param head
*/
public static void reverse(Node head){
if(head!=null){
Node nextNode=head.getNext();
if(nextNode!=null){
reverse(nextNode);
nextNode.setNext(head);
}
}
}
}
0 0
- 反转链表的Java实现
- java实现链表的反转
- java实现链表的反转
- Java:如何实现链表的反转
- 链表的反转(java实现)
- java反转链表实现
- java实现链表反转
- java 实现反转链表
- java实现链表反转
- java实现链表反转
- Java实现链表反转
- Java实现反转链表
- 反转链表--Java实现
- java实现链表反转
- 反转链表java实现
- Java实现链表反转
- Java 单链表的反转 以及 双向链表的实现
- 实现链表的反转
- 模拟登陆获取职位信息
- 如何在linux系统上获取命令的帮助?
- POJ 2142 The Balance [不定方程和最小的正整数解]【数论】
- 转:你们以为我在学C++?其实我在学 Python(pezy)
- 【light-oj】1136 - Division by 3(数学,规律)
- java实现链表的反转
- PHP 伪静态技术原理以及突破原理实现介绍
- JDBC数据源连接池的配置
- 经纬度地址转换的方法集合(Python描述)
- Linux中的帮助文档
- C++中构造函数、析构函数和虚函数
- Palindromic Squares(模拟)(USACO)
- php之微信开发获取用户openid的方法
- 基于php伪静态的实现详细介绍