单链表是一种简单而且常用的数据结构,这里简单总结了关于单链表常用的几种操作。
单链表的节点结构如下:
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
1.链表反置
如:现有链表1->2->3->4->5,反置后得到5->4->3->2->1
使用三个指针:pre为上一个节点;cur为当前节点;nxt用来保存下一个节点
执行以下4步操作:
1)nxt=cur.next; //用nxt保存cur的下一个节点
2)cur.next=pre; //cur的下一个节点指向pre
3)pre=cur; //pre指针指向cur所指向的节点
4)cur=nxt; //cur移向下一个节点
重复这几个步骤,最终就可以得到反置后的链表
代码如下:
public ListNode reverseList(ListNode head) {
ListNode pre=null;
ListNode cur=head;
ListNode nxt=null;
while(cur!=null){
nxt=cur.next;
cur.next=pre;
pre=cur;
cur=nxt;
}
return pre;
}