找到链表的第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     }

 

posted @ 2017-07-16 11:39  jiangfullll  阅读(345)  评论(0)    收藏  举报