我试图编写一个程序来查找链表中的节点值。我打算让程序在列表中存在值时返回值,并在列表中不存在时返回null
。但是当我键入不在链接列表中的值(例如4)时,它不能返回null
。
package com.company;
/**
* Created by Administrator on 2016/10/20 0020.
*/
public class find {
public static void main(String[] args){
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
node1.next = node2;
node2.next = node3;
ListNode node = findNode(node1,4);
System.out.println(node.val);
}
public static ListNode findNode(ListNode head, int val){
for (ListNode node = head; node != null; node = node.next ){
if (node.val == val){
return node;
}
}
return null;
}
}
class ListNode{
int val;
ListNode next;
ListNode(int x){
val = x;
next = null;
}
}
答案 0 :(得分:0)
Node node = findNode(node1,4);
if(node == null)
{
System.out.println("The Node was not found in the linked list");
}
else
System.out.println(node.val);
添加if检查,以便当节点不存在所需值时,当findNode返回null时,您不会遇到空指针异常。您当前的实现工作正常,我运行它并确实按设计返回null。