![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c5abb03ad96cba1c9ffb2c9fd00c980c.png)
1. 双指针
- 第一个指针先移动K步,第二个指针从头开始移动
- 当第一个指针移动至尾部,返回第二个指针即可
- 注意:需要先判断是否空指针
2. 栈
思路:
将原链表的节点全部入栈,然后取出栈的最上面的K个节点,出栈的节点形成新的链表
ListNode newNode = stack.pop()
while(--k>0){
ListNode temp = stack.pop()
temp.next = newNode ;
newNode = temp
}
return newNode
stack.pop(): 返回栈顶元素,并删除
stack.peek():返回栈顶元素