Compile Error :: Line 3: error: class ListNode is public, should be declared in a file named

  • 0


    I am new to coding and was trying to implement AddTwo code using the solution that was provided already.

    I am getting this error while running the code.

    Can someone suggest ta way to correct this

    Here is the code::

     //Definition for singly-linked list.
     public class ListNode {
         int val;
         ListNode next;
         ListNode(int x) { val = x; }
     public class Solution {
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            //Create a temporary node to store and return a link to the result
            ListNode sumList = new ListNode(0);
            //Create nodes that store values of L1 and L2 respectively
            ListNode firstList = l1 , secondList = l2;
            //create a current node that would be used to traverse the list
            //Initialize current node to the present head of the list
            ListNode currentList = sumList;
            //Declare carry that will store value 0 or 1 depending upon the addition operation
            int carry = 0;
            //Traverse the ListNode until either of the lists reaches its end
            while( firstList!=null || secondList!= null){
                //Store values present in the first and second list elements
                int num1 = (firstList != null) ? (firstList.val) : 0;
                int num2 = (secondList !=null) ? (secondList.val) : 0;
                //Perform addition
                int sum = num1 + num2 + carry;
                //Update carry 
                carry = sum/10;
                //Create next node of the Current list and give its initial value
                //This is the actual result of the addition performed
       = new Listnode( sum%10 );
                //Update currentList node to move to the next element
                currentList =;
                //Move the first and second lists to the next element if they are not at the end
                if( firstList != null ) {
                    firstList =;
                if( secondList != null ) {
                    secondList =;
                //For the next addition, provide value of carry that was thee output of the previous addition
                //Carry can be either 0 or 1
                if( carry == 1)
           = new ListNode (carry);
            //Return the output

Log in to reply

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.