已知有一个链表,任意输入一个值,实现链表的顺序插入及链表反序。
时间: 2023-07-10 09:37:26 浏览: 119
好的,可以通过以下代码实现链表的顺序插入和反序:
```python
# 定义链表节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 定义链表类
class LinkedList:
def __init__(self):
self.head = None
# 链表的顺序插入
def insert(self, val):
node = ListNode(val)
if not self.head:
self.head = node
else:
curr = self.head
while curr.next:
curr = curr.next
curr.next = node
# 链表的反序
def reverse(self):
prev = None
curr = self.head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
self.head = prev
```
对于链表的顺序插入,我们可以先判断链表是否为空,如果为空,则将新节点设置为链表的头节点;如果不为空,则遍历整个链表,找到最后一个节点,将其的next指向新节点。
对于链表的反序,我们可以使用三个指针prev, curr和next_node,将curr指向的节点的next指向prev,然后将prev和curr都向后移动一个节点,直到curr变为None为止。最后将链表的头节点指向prev即可。
阅读全文