added inner class ListNode