`
songkang666
  • 浏览: 103123 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

定位链表倒数第m个结点

 
阅读更多
题目描述:
给定一个链表,找到倒数的第m个结点。
如:1->2->3->4->5->6->7->NULL,找到倒数第3个,即5这个结点。

思路:
用两个指针,first和second,同时指向头结点,然后让second移动到与first所指向的结点距离为m-1的结点,然后同时向后移动first及second,直到second指到NULL。

Node *get_last_m_node(Node *head, int m) {
     Node *first, *second;
     first = second = head;
     while(--m) {
          second = second->next;
          if(!second) {
               return NULL;
          }
     }
     
     while(second->next) {
          first = first->next;
          second = second->next;
     }
     
     return first;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics