thinkpad的电池也都是集成的了?# Hardware - 计算机硬件
j*a
1 楼
对于这个问题:找单链表的倒数第m的节点。
资料上说,用两个指针,第一个指针先走m步,然后两个指针一块走,等第一个指针到
了这个链表的end,第二指针指的就是我们要的节点(优化方法)。
这个是个解决方案,但是我觉得的这个方法没有这么大的优点使得每一个资料都给这个
方法。
简单的方法是,先走这个单链表一遍,算出节点的个数是n,然后再找链表中顺数第n-m
的节点。
优化方法,看起来是遍历链表一次,但是每次都是要让两个指针走一步,而且这两个指
针操作完全有可能都导致内存的page faulting。简单方法看起来是遍历了链表两次,
但是每次操作只让一个指针走一步。我甚至觉得这个优化的方法实际比简单方法要性能
差(如果过它的两个指针的next都导致内存cache换页)。
大家说那?
资料上说,用两个指针,第一个指针先走m步,然后两个指针一块走,等第一个指针到
了这个链表的end,第二指针指的就是我们要的节点(优化方法)。
这个是个解决方案,但是我觉得的这个方法没有这么大的优点使得每一个资料都给这个
方法。
简单的方法是,先走这个单链表一遍,算出节点的个数是n,然后再找链表中顺数第n-m
的节点。
优化方法,看起来是遍历链表一次,但是每次都是要让两个指针走一步,而且这两个指
针操作完全有可能都导致内存的page faulting。简单方法看起来是遍历了链表两次,
但是每次操作只让一个指针走一步。我甚至觉得这个优化的方法实际比简单方法要性能
差(如果过它的两个指针的next都导致内存cache换页)。
大家说那?