如何将链表表头放到表尾
时间: 2023-03-30 10:00:41 浏览: 114
可以通过以下步骤将链表表头放到表尾:
1. 找到链表的尾节点,将其指向表头节点。
2. 将表头节点的指针指向下一个节点。
3. 将新的表头节点的指针设置为 NULL,以表示链表的结尾。
这样就可以将链表表头放到表尾了。
相关问题
链表从链表尾到链表头逆序输出
以下是两种Python实现链表逆序输出的方法:
1. 借助一个新的空链表
```python
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
new_head = None
while head:
temp = head.next
head.next = new_head
new_head = head
head = temp
return new_head
# 测试
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node1.next = node2
node2.next = node3
s = Solution()
new_head = s.reverseList(node1)
while new_head:
print(new_head.val)
new_head = new_head.next
```
2. 在原链表上直接逆序
```python
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
last = None
while head:
temp = head.next
head.next = last
last = head
head = temp
return last
# 测试
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node1.next = node2
node2.next = node3
s = Solution()
new_head = s.reverseList(node1)
while new_head:
print(new_head.val)
new_head = new_head.next
```
C#链表从链表尾到链表头逆序输出
以下是C#链表从链表尾到链表头逆序输出的方法:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
LinkedList<int> list = new LinkedList<int>();
list.AddLast(1);
list.AddLast(2);
list.AddLast(3);
list.AddLast(4);
LinkedListNode<int> node = list.Last;
while (node != null)
{
Console.WriteLine(node.Value);
node = node.Previous;
}
}
}
```
输出结果为:
```
4
3
2
1
```