方法1:
首先遍历链表,统计链表的长度N。
然后再次遍历链表,找到第N-m+1个节点,即为倒数第m个节点。
方法2:
使用两个指针,并使它们指向的节点相距m-1个。
然后同时向前移动两个指针,当一个指针指最后一个节点时, 第二个指针指向倒数第m个节点。
两个方法的复杂度都是O(n)。
但是当N较大而m较小时,方法2可能会更快一些。 因为方法2能更好利用CPU的缓存。
更多阅读:
http://baike.baidu.com/view/ 2089.htm CPU -> 缓存
首先遍历链表,统计链表的长度N。
然后再次遍历链表,找到第N-m+1个节点,即为倒数第m个节点。
方法2:
使用两个指针,并使它们指向的节点相距m-1个。
然后同时向前移动两个指针,当一个指针指最后一个节点时,
两个方法的复杂度都是O(n)。
但是当N较大而m较小时,方法2可能会更快一些。
更多阅读:
http://baike.baidu.com/view/