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

反转单链表

2016-07-08 09:25 274 查看
实现单链表的反转:

1)栈实现:链表压入栈中,依次弹出,顺序反转。时间复杂度O(n),空间复杂度O(n);

2)借用三个指针:三个指针,前两个用来反转节点指向,第三个记录后一个节点,遍历整个链表,时间复杂度O(n),空间复杂度O(1)

//返回一个实现了反转的链头
public static LinkNode reverseLink(LinkNode pNode){
//定义三个指针,第一个和第二个指针用来交换指向(即反转),
//第三个指针记录下一个指针
LinkNode first=pNode;
LinkNode secend=pNode.nextNode;
LinkNode third=null;

while(secend!=null){
third=secend.nextNode;
secend.nextNode=first;
first=secend;
secend=third;

}
pNode.nextNode=null;
return first;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构