javascript - Leetcode 206 链表反转 java解法求解释
本文介绍了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屋!
查看全文