难度: 中等 标题:带环链表
给定一个链表,判断它是否有环。
思路
一开始想到的思路是放到hashmap里,每次前进一格就查询在hashmap中是否存在。存在则返回true,遇到null就返回false。但是这样需要额外空间。
后来的思路是两个指针first和second。second每次前进两格,first前进一格。若有环,second必定追上first。
思路想到后调试了很久,总是超出内存范围。
代码
1 | /** |
给定一个链表,判断它是否有环。
一开始想到的思路是放到hashmap里,每次前进一格就查询在hashmap中是否存在。存在则返回true,遇到null就返回false。但是这样需要额外空间。
后来的思路是两个指针first和second。second每次前进两格,first前进一格。若有环,second必定追上first。
思路想到后调试了很久,总是超出内存范围。
1 | /** |
找到单链表倒数第n个节点,保证链表中节点的最少数量为n。
可以选择两个指针,指向第一个(first)和第N个(end)。然后每次first前进一格,则end也前进一格,知道end == null时,first指向的就是倒数第n个。
1 | public class Solution { |
http://www.lintcode.com/zh-cn/problem/nth-to-last-node-in-list/
Update your browser to view this website correctly. Update my browser now