单链表反转
单链表定义:链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据,数据以节点来表示,节点由数据和指针(指示后继元素存储位置)组成。如下图。
现在要反转这个链表。
输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
具体执行过程见下图:
(图引用自https://blog.youkuaiyun.com/guyuealian/article/details/51119499)
Java实现如下:
public ListNode reverseList(ListNode head) {
ListNode cur= head;
ListNode pre = null;
if(head==null){
return null;
}
while(cur!=null){
ListNode nexttemp = cur.next; // 将当前节点的下一个节点临时保存在nextTemp
cur.next = pre ; //改变指针域指向,指向当前节点的上一个节点(也就是反转之后的下一个节点cur.next)
pre = cur; //将当前节点变为反转后的前一个节点,也就是将原链表(反转之前)数据后移
cur = nexttemp; //原链表的下一个节点就存储了反转之后的新当前节点
}
return pre;
}
单链表反转-面试题之一
最新推荐文章于 2021-09-07 16:09:01 发布