猿问

Leetcode 206 链表反转 java解法求解释

Leetcode 206 反转链表的一道题,java做的,java萌新看懵逼了,求解释!

public ListNode reverseList(ListNode head) {}

1.这一行代码是什么意思?在solution类里调用listnode类并且新写了reverselist方法?

2.注释里的ListNode类中 next是什么类型的变量?
3.ListNode(int){val = x}在java里叫什么?静态方法么?作用是什么?
4.reverselist里的prev cur是什么类型变量?为什么不用声明呢?什么样的变量可以调用listnode类中的next呢?

问题有些小白,求大家解答!谢谢啦!

源代码如下:

  /**

     * Definition for singly-linked list.

     * public class ListNode {

     *     int val;

     *     ListNode next;

     *     ListNode(int x) { val = x; }

     * }

     */

    public class Solution {

        public ListNode reverseList(ListNode head) {

            ListNode prev = null;

            ListNode cur = head;

            while(cur!=null){

                ListNode next = cur.next; 

                cur.next = prev;

                prev = cur;

                cur = next;

            }

            return prev;

        }

    }


慕容708150
浏览 640回答 1
1回答

萧十郎

1、这行代码是让你在方法里添加实现,reverselist是Solution类的方法,和ListNode类无关。2、next是ListNode类型,是当前节点的下一个节点引用。3、这一句是构造方法,构造一个ListNode对象。静态方法是static方法,是类方法,不用实例化就可以调用。4、prev、cur都是ListNode类型。前面不是已经声明了吗?ListNode的next方法肯定是ListNode的实例可以调用啦。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答