您的位置:首页 > 理论基础 > 数据结构算法

左程云著算法与数据结构题目最优解笔记-反转单双链表

2016-09-04 15:14 453 查看

反转单双链表

链表长度为n,时间复杂度为O(n),空间复杂度为O(1).

反转单链表

代码块

public class Node {
public int val;
public Node next;
public Node (int val){
this.val=val;
}
}
public Node reverseList(Node head){
Node pre=null;
Node next=null;
while(head!=null){
//反转第一个节点
next=head.next;//记录下一个节点
head.next=pre;//反转当前节点
pre=head;//记录当前节点为下一个节点的pre
head=next;//移动到下一个节点
}
return pre;//返回新头节点
}


反转双链表

代码块

public class DoubleNode {
public int val;
public DoubleNode pre;
public DoubleNode next;
public DoubleNode (int val){
this.val=val;
}
}
public Node reverseList(Node head){
DoubleNode pre=null;
DoubleNode next=null;
while(head!=null){
//反转第一个节点
next=head.next;//记录下一个节点
head.next=pre;//反转当前节点:next指针指向上一个节点
head.pre=next;//反转当前节点:pre指针指向下一个节点
pre=head;//记录当前节点为下一个节点的pre
head=next;//移动到下一个节点
}
return pre;//返回新头节点
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息