您的位置:首页 > 编程语言 > Java开发

java非递归实现单链表反转

2017-11-17 00:02 260 查看
今天晚上看了IT名企算法与数据结构最优解的关于单链表的反转问题,刚开始自己也理解了一会。后面突然就豁然开朗了。

首先,我们申明一个链表类。

//链表类
class Node{
public int data;
public Node next;
public Node(int data){
this.data=data;
}

}


因为在对链表进行反转的时候,需要更新每一个node的“next”值,但是,在更新 next 的值前,我们需要保存 next 的值,否则我们无法继续。所以,我们需要两个指针分别指向前一个节点和后一个节点,每次做完当前节点“next”值更新后,把两个节点往下移,直到到达最后节点。

代码如下:

public Node resverList(Node head){
Node pre=null;
Node next=null;
while(head!=null){
next = head.next;
head.next=pre;
pre=head;
head=next;
}
return pre;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单链表 链表