我如何在链表中找到链表的长度?
How would I find the length of a linkedlist IN a linkedlist?
我正在尝试遍历其中包含链表(子列表)元素的链表(我们可以称之为超级列表)。
将元素添加到两个链表的方法是:
LinkedList<Object> list = new LinkedList<>();
public void add(Object... item) {
LinkedList<Object> thingie = new LinkedList<>();
for (Object i: item) {
thingie.add(i);
}
list.addAll(thingie);
}
现在我必须编写方法通过遍历超级列表来检查子列表中是否有1、2、3、4组元素
我到目前为止(这是非常错误的)是:
LinkedList <Object> ohno = new LinkedList<>();
for (int i = 0; i<list.size(); i++){
ohno = (LinkedList<Object>) list.get(i);
if (int j = 1; j = ohno.size();){
return true;
}
else return false;
}
你可以做的是创建一个方法,为有问题的组大小传递一个参数,并找出是否有任何大小组大小的子列表。
private static boolean hasSubListsOfSize (LinkedList<Object> superList, final int groupSize)
{
for (int i = 0, size = superList.size(); i < size; i++)
{
LinkedList<Object> subList = (LinkedList<Object>) superList.get(i);
if (subList.size() == groupSize)
{
return true;
}
}
// didn't find any sub lists of the group size
return false;
}
旁注:正如@Abhishek 所指出的,从技术上讲,您的超级列表不是LinkedList's
的LinkedList
。它是 Objects
的 LinkedList
。这就是为什么您必须显式转换为 LinkedList 才能访问 "Sub LinkedList's"。
如果您想要 LinkedList's
的真实 LinkedList
,那么您应该像这样创建 superList:
LinkedList<LinkedList<Object>> superList = new LinkedList<LinkedList<Object>>();
如果您以这种方式创建它,那么您将避免在编译时进行显式转换。
递归简单解法
def getCount(head):
if (not node): # Base case
return 0
else:
return 1 + getCount(head.next)
我正在尝试遍历其中包含链表(子列表)元素的链表(我们可以称之为超级列表)。
将元素添加到两个链表的方法是:
LinkedList<Object> list = new LinkedList<>();
public void add(Object... item) {
LinkedList<Object> thingie = new LinkedList<>();
for (Object i: item) {
thingie.add(i);
}
list.addAll(thingie);
}
现在我必须编写方法通过遍历超级列表来检查子列表中是否有1、2、3、4组元素 我到目前为止(这是非常错误的)是:
LinkedList <Object> ohno = new LinkedList<>();
for (int i = 0; i<list.size(); i++){
ohno = (LinkedList<Object>) list.get(i);
if (int j = 1; j = ohno.size();){
return true;
}
else return false;
}
你可以做的是创建一个方法,为有问题的组大小传递一个参数,并找出是否有任何大小组大小的子列表。
private static boolean hasSubListsOfSize (LinkedList<Object> superList, final int groupSize)
{
for (int i = 0, size = superList.size(); i < size; i++)
{
LinkedList<Object> subList = (LinkedList<Object>) superList.get(i);
if (subList.size() == groupSize)
{
return true;
}
}
// didn't find any sub lists of the group size
return false;
}
旁注:正如@Abhishek 所指出的,从技术上讲,您的超级列表不是LinkedList's
的LinkedList
。它是 Objects
的 LinkedList
。这就是为什么您必须显式转换为 LinkedList 才能访问 "Sub LinkedList's"。
如果您想要 LinkedList's
的真实 LinkedList
,那么您应该像这样创建 superList:
LinkedList<LinkedList<Object>> superList = new LinkedList<LinkedList<Object>>();
如果您以这种方式创建它,那么您将避免在编译时进行显式转换。
递归简单解法
def getCount(head):
if (not node): # Base case
return 0
else:
return 1 + getCount(head.next)