我正试图编写一个程序来查找链表中的节点值。我打算让程序在值存在于列表中时返回值,而当它不存在于列表中时返回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;
}
}
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而节点不存在所需值时,您就不会遇到空指针异常。你目前的实现工作,我运行它,它确实给了一个空的设计。