java给定两个链表,找到其中一个链表是另一个链表的子链表的索引
最近,我在大学里参加了一个java编码挑战,有人问我这个问题,我发现这个问题很难实现
问题是实现一个方法detect
,该方法给定两个LinkedList
,返回索引,其中第二个列表是第一个列表的子列表
detect((1,2,3),(2,3)) should return 1
列表的节点结构为
LinkedListNode {
String val;
LinkedListNode *next;
}
以及方法签名
static int detect(LinkedListNode list, LinkedListNode sublist)
解决这个问题的基本算法是什么。我是数据结构的新手
# 1 楼答案
其基本思想是遍历第二个列表,并为此列表中的每个索引检查第一个列表中连续元素的相等性。以下算法适用于您:
这会按预期打印
Index is: 1
# 2 楼答案
因为,这里的值是字符串:-
# 3 楼答案