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

查看:99
本文介绍了javascript - 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;
        }
    }

解决方案

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

这篇关于javascript - Leetcode 206 链表反转 java解法求解释的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆