题目描述 :
输入一个链表,反转链表后,输出新链表的表头。(注意: 题目未告知无头节点还是有头节点,最终测试得知为无头节点)
主要思想 :
public static ListNode
ReverseList(ListNode head
) {
if(head
== null
){
return null
;
}
if (head
.next
== null
)
return head
;
ListNode P
= head
.next
;
head
.next
= null
;
ListNode S
= null
;
while (P
!= null
) {
S
= P
.next
;
P
.next
= head
;
head
= P
;
P
= S
;
}
return head
;
}
注意点 :
考虑特殊情况1,当仅有head节点时,应返回head节点考虑特殊情况2,当链表为空时,应返回null