题目标签
双指针、链表
解题思路一
第一次遍历计算出链表长度n
,第二次遍历至n - k
处即为答案
AC代码一
1 | func getKthFromEnd(head *ListNode, k int) (kth *ListNode) { |
解题思路二
使用快慢指针fast
、slow
进行遍历,快指针fast
先遍历至第k + 1
个节点,此时两个指针间相差k
个节点,然后fast
和slow
同时向后遍历,当fast
指向链表尾部后,slow
指针指向倒数第k
节点
AC代码二
1 | func getKthFromEnd(head *ListNode, k int) *ListNode { |
解题思路三
通过for
循环遍历链表记录该链表长度,同时将遍历时的首节点start
保存至数组ans
中,最后返回ans[len(ans) - k]
AC代码三
1 | func getKthFromEnd(head *ListNode, k int) *ListNode { |
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !