class ListNode: def __init__(self, val, next=None): self.val = val self.next = next
时间: 2024-05-20 11:17:52 浏览: 312
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
"""
:type head: ListNode
:rtype: ListNode
"""
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
相关问题
``` class ListNode: def __init__(self, x): self.val = x self.next = None```怎么往链表内添加数据
在这个`ListNode`类中,你可以通过创建一个新的节点,并将其`next`属性指向当前链表的最后一个元素来向链表内添加数据。如果链表为空(即`self.next`为`None`),则新节点既是头节点也是尾节点。下面是添加数据的基本步骤:
1. 定义新的节点:首先创建一个包含新值`x`的对象,如 `new_node = ListNode(x)`。
2. 检查链表是否为空:检查当前头节点`self`是否有`next`属性,如果没有,说明链表为空。
3. 添加节点:如果链表非空,则将新节点设置为`self.next`;否则,直接让`new_node`成为头节点。
具体的Python代码示例如下:
```python
def add_to_list(self, x):
if not self.next: # 如果链表为空
self.next = ListNode(x) # 新节点作为头节点
else:
current = self.next # 从头节点开始遍历
while current.next: # 当前节点还有下一个节点时
current = current.next # 继续遍历
current.next = ListNode(x) # 当到达链表尾部时添加新节点
```
解释代码:class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next
这段代码定义了一个名为 ListNode 的类,该类具有两个属性:val 和 next。其中,val 表示节点的值,next 表示指向下一个节点的指针。在类的初始化函数 __init__ 中,可以传入一个默认值 val=0 和一个默认的下一个节点 next=None。如果没有传入这些参数,则会使用默认值。
阅读全文