我的ListNode无法返回" null"

时间:2016-10-21 19:20:44

标签: java linked-list

我试图编写一个程序来查找链表中的节点值。我打算让程序在列表中存在值时返回值,并在列表中不存在时返回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;
        }


    }

1 个答案:

答案 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。