当前位置: 首页 > 知识库问答 >
问题:

Java双链表--两个相邻节点的相等性

伏默
2023-03-14

类MyList的公共方法TwoTogethere()返回True,当且仅当list有两个相等的相邻元素。您可以假定没有列表元素(数据)为空。以下是一些示例:当调用此方法时,列表[a,b,c,d]将返回false。而是一个清单[a、b、b、c]或[a、b、c、d、e、f、f]。方法返回true。编写public方法。您可以使用列表接口引用(字段:data、prev、next)(head、tail)(size)等。下面是我编写的代码:

 public boolean twoTogether(){
      currentNode = head;
      while (currentNode.hasNext()){ 
            if (currentNode.data != currentNode.next.data){ 
                  currentNode = currentNode.next;
            }
            else if (currentNode.data == currentNode.next.data){
                 return True;
            }
      }
      return False;
  }

共有1个答案

扶绍辉
2023-03-14

你说得对,循环终止并不完全正确。while循环中的前两个分支不属于。前两个分支中的一个总是触发,因为!=和==是互补的。return false语句属于while循环之外,指示已经遍历了整个列表,并且没有相等的相邻节点。

public boolean twoTogether(){
    currentNode = head;
    while (currentNode.hasNext()){ 
        if (currentNode.data != currentNode.next.data){ 
            currentNode = currentNode.next;
        }
        else if (currentNode.data == currentNode.next.data){
            return True;
        }
    }
    return False;
}

hasNext()的使用非常完美!永远不要过度遍历列表...希望这能有所帮助!

 类似资料:
  • 本文向大家介绍Java实现双链表互相交换任意两个节点的方法示例,包括了Java实现双链表互相交换任意两个节点的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现双链表互相交换任意两个节点的方法。分享给大家供大家参考,具体如下: 概述: 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以

  • 主要内容:src/runoob/graph/DenseGraphIterater.java 文件代码:,src/runoob/graph/SparseGraphIterater.java 文件代码:图论中最常见的操作就是遍历邻边,通过一个顶点遍历相关的邻边。邻接矩阵的遍历邻边的时间复杂度为 O(V),邻接表可以直接找到,效率更高。 邻接矩阵迭代: ... public Iterable <Integer > adj ( int v ) {     assert v >= 0 && v < n ;

  • 这是我的问题的一个细节。我需要使用XPath选择以下节点: 应该如何制定xpath查询来查找属性的值等于属性的值的所有节点? 当然完全容易--但我只是无法到达那里,在网上找不到任何合适的东西。

  • 我在Java中实现一个双链接列表时遇到了一个问题。特别是要交换2个以下节点(在我的例子中,一个节点包含一个政治候选人)。 假设下面的DLL: head- 作为输出,我没有从头到尾的正确DLL,但从头到尾都很好: 我已经写了几个版本的这个方法reverseTwoNode。我甚至尝试在节点内部交换数据,而不是交换节点,我也有同样的问题。你能帮我真是太好了,我花了这么多时间在这个简单的功能上,我看不出有

  • 问题内容: 我要两个紧挨着。右边大约200px;并且左侧必须填满屏幕的其余宽度?我怎样才能做到这一点? 问题答案: 您可以使用 flexbox 布置物品: 这基本上只是刮擦flexbox的表面。Flexbox可以做很多令人惊奇的事情。 对于较旧的浏览器支持,可以使用CSS float 和 width 属性来解决它。

  • 2.Add Two Numbers [M] 题目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbe