如何检查链表中的最后一个节点值?

时间:2019-04-23 22:03:44

标签: 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;
        }


}

2 个答案:

答案 0 :(得分:1)

在您的while条件下,您正在检查 next 节点是否为空。这意味着当当前迭代在最后一个节点上时,将不会对其进行检查。您需要检查node本身是否为null,这意味着您已超出链接列表的末尾。

while (node != null)

这意味着直到检查完最后一个节点(由node表示为null后,您才可以停止循环。

顺便说一句,除非方法签名是通过作业分配来固定的,否则您可能希望方法返回一个boolean来指示是否找到了该值,而不是如果发现则打印一些内容而不是什么进行打印你没找到。

答案 1 :(得分:1)

最后一个节点是end = null之前的一个节点。只要遵循想法(代码可能会有一个小错误)

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
        }
}