找到链表的第N个节点
使用两个指针pNthNode和pTemp。首先,两个指针都指向链表的表头节点,仅当pTemp沿着链表进行了N次移动后,pNthNode才开始移动。然后两个指针同事移动直至pTemp到达表尾。这时pNthNode指针所指的节点就是所求的节点,也就是链表的倒数第n个节点。
1 ListNode nthNodeFromEnd(ListNode head, int nthNode) { 2 ListNode pTemp = head, pNthNode = null; 3 for(int count = 1; count < nthNode; count++) { 4 if(pTemp != null) { 5 pTemp = pTemp.getNext(); 6 } 7 } 8 while(pTemp != null) { 9 if(pNthNode == null) { 10 pNthNode = head; 11 } else { 12 pNthNode = pNthNode.getNext(); 13 } 14 pTemp = pTemp.getNext(); 15 } 16 return pNthNode; 17 }

浙公网安备 33010602011771号