赞
踩
给你单链表的头节点head,请你反转链表,并返回反转后的链表。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ //prev,cur,curNext,三个引用配合完成链表反转,最后返回newHead反转之后的头节点也就返回了反转之后的链表,这种题找五个节点组成链表画一下会更加形象。 class Solution { public ListNode reverseList(ListNode head) {//这里链表反转定义四个引用 ListNode prev = null;//一开始暂不确定,就先置为空 ListNode newHead = null;//一开始暂不确定,就先置为空 ListNode cur = head; ListNode curNext; while(cur != null){ curNext = cur.next;//放在循环里面是因为,如果放在外面,该链表为null的话,cur.next会产生空指针异常 if(curNext == null){ newHead = cur;//到这一步,就将原来的尾节点找到作为反转之后的头节点 } cur.next = prev; prev = cur; cur = curNext; } return newHead; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。