Java 如何检查链接列表中的最后一个节点值?
我在下面编写的代码不会检查我要查找的值是否在最后一个节点中。如何检查最后一个节点值Java 如何检查链接列表中的最后一个节点值?,java,data-structures,Java,Data Structures,我在下面编写的代码不会检查我要查找的值是否在最后一个节点中。如何检查最后一个节点值 public void search(int value) { Node node = head; while(node.next!=null) { if(node.data == value) { System.out.println("Found"); } node = node.next;
public void search(int value)
{
Node node = head;
while(node.next!=null)
{
if(node.data == value)
{
System.out.println("Found");
}
node = node.next;
}
}
在
while
条件中,检查下一个节点是否为空。这意味着当当前迭代位于最后一个节点上时,将不会对其进行检查。您需要检查节点
本身是否为null
,这意味着您已经从链表的末尾跑了出来
while (node != null)
这意味着您在检查最后一个节点之前不会停止循环,该节点由node
表示为null
顺便说一句,除非方法签名通过家庭作业固定,否则您可能希望该方法返回一个指示是否找到该值的
布尔值,而不是在找到某个值时打印该值,在未找到该值时不打印任何值。最后一个节点是end=null之前的节点。只需遵循想法(代码可能有一个小错误)
退出后再添加一个检查,而要检查最后一个节点,请选中“如果您认为对方回答了您的问题,请将对方的回答标记为已接受”@SaikumarAllamThanks感谢您的回答。作为这个问题的提问者,您可以根据自己的判断,认为您的问题回答得最好。
public void search(int value)
{
Node node = head;
Node lastnode;
while(node.next!=null)
{
if(node.data == value)
{
System.out.println("Found");
}
lastnode = node;
node = node.next;
if(node==null)
System.out.println("Last node Found"); //lastnode.data
}
}