1 package algorithms; 2 3 /* 4 * 5 * 6 * 输入一个链表,反转链表后,输出新链表的表头。 7 * 8 public class ListNode { 9 int val; 10 ListNode next = null; 11 12 ListNode(int val) { 13 this.val = val; 14 } 15 } 16 17 18 */ 19 20 public class ReverseList { 21 public ListNode ReverseList_1(ListNode head) { 22 ListNode pReverseNodeHead = null; 23 ListNode pNode = head; 24 ListNode pPrevious = null; 25 while(pNode!=null) { 26 ListNode pNext = pNode.next; //将下一个节点保存起来 27 if(pNext==null) 28 pReverseNodeHead = pNode; 29 pNode.next = pPrevious; 30 pPrevious = pNode; 31 pNode = pNext; //定义了几个指针 移动的时候要注意一起移动 32 33 } 34 return pReverseNodeHead; 35 36 } 37 }