题目:
输入一个链表,反转链表后,输出新链表的表头。
过去提交通过的程序:
class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode ReverseList(ListNode pHead) { ListNode pHeadNode=null; ListNode pNode=pHead; ListNode pNext=null; ListNode pRev=null; while(pNode!=null) { pNext=pNode.next; if(pNext==null) { pHeadNode=pNode; } pNode.next=pRev; pRev=pNode; pNode=pNext; } return pHeadNode; } }
再写一次:(一次通过!!)
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode ReverseList(ListNode head) { ListNode pHead=null; ListNode pNode=head; ListNode pNext=null; ListNode pRev=null; while(pNode!=null) { pNext=pNode.next; if (pNext==null) { pHead=pNode; } pNode.next=pRev; pRev=pNode; pNode=pNext; } return pHead; } }