最近一直在参加面试,笔试,但是刷了算法题也就一直没有更新,今天学到了一个新的知识点。链表的反转。
上代码:
public class ReverList {
/**
* 输入一个链表,反转链表后,输出链表的所有元素。 将
*
* @param head
* @return
*/
public static ListNode reverList(ListNode head) {
if (head == null) {
return head;
}
ListNode preNode = null;//
ListNode nextNode = null;//
while (head != null) {
// 将节点进行反转 例如: 1->2->3->4 如: 1<-2<-3<-4
nextNode = head.next;// 保存头结点
head.next = preNode ;//将当前节点指向pre空节点
preNode = head;//将当前节点设置为pre节点,下次遍历时,直接指到上一个节点 而不是pre的空节点。
head = head.next;
}
return head;
}