要解决这个问题普通的算法是,求得链表的长度(通过遍历),再通过遍历找到第n-1个节点
那么时间复杂度是O(n2)
O(n)的解决方案
使用2个指针p,q
p先移动n次(每次移动步数为1)
此时q和p一起移动,当p到达链表尾部时,q所在的节点即是倒数第N个节点
设链表总长m
其实倒数第n个节点即是m-n
p移动到n
q开始移动
q移动的步数=m-n
要解决这个问题普通的算法是,求得链表的长度(通过遍历),再通过遍历找到第n-1个节点
那么时间复杂度是O(n2)
O(n)的解决方案
使用2个指针p,q
p先移动n次(每次移动步数为1)
此时q和p一起移动,当p到达链表尾部时,q所在的节点即是倒数第N个节点
设链表总长m
其实倒数第n个节点即是m-n
p移动到n
q开始移动
q移动的步数=m-n