按照求表厂算法写出单链表的输出算法
时间: 2024-10-18 10:12:43 浏览: 17
按照顺序遍历(也称为前序遍历)的方式,你可以使用递归或迭代的方式来编写单链表的输出算法。这里给出一个基于迭代的简单示例:
```python
# 定义节点结构
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def print_list(head):
# 初始化空字符串存储结果
output = ""
# 使用while循环遍历链表
current = head
while current is not None:
# 将当前节点的值添加到输出字符串中
output += str(current.val) + " "
# 移动到下一个节点
current = current.next
# 返回最终的输出
return output.strip() # 删除尾部多余的空格
# 示例链表
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
# 输出链表
print(print_list(head)) # 输出:1 2 3
```
相关问题
写一算法:求单链表head的长度。(请写出具体过程)
算法思路:
从头节点开始遍历单链表,每遍历一个节点,长度计数器加1,直到遍历到最后一个节点。
算法实现:
1. 初始化计数器count为0,指针p指向head节点。
2. 从head节点开始,依次遍历单链表中的每个节点,直到p指向最后一个节点。
3. 在遍历每个节点时,计数器count加1,指针p指向下一个节点。
4. 遍历结束后,返回count值,即为单链表head的长度。
代码实现:
```
int getLength(ListNode* head) {
int count = 0;
ListNode* p = head; // 指针p指向head节点
while (p != NULL) { // 遍历单链表中的每个节点
count++; // 计数器count加1
p = p->next; // 指针p指向下一个节点
}
return count; // 返回单链表head的长度
}
```
时间复杂度:O(n),其中n为单链表的节点数。
根据单链表的结构 写出一个能判断出单链表中所有奇数并将奇数输出的算法,另一个能判断出单链表中所有偶数并将偶数输出的算法
可以回答这个问题。
判断单链表中所有奇数并将奇数输出的算法:
1. 定义一个指针p指向单链表的头结点。
2. 遍历单链表,当p不为空时,执行以下操作:
a. 判断p所指向的节点的值是否为奇数,如果是,输出该节点的值。
b. 将p指向下一个节点。
3. 遍历结束后,所有奇数已经输出。
判断单链表中所有偶数并将偶数输出的算法:
1. 定义一个指针p指向单链表的头结点。
2. 遍历单链表,当p不为空时,执行以下操作:
a. 判断p所指向的节点的值是否为偶数,如果是,输出该节点的值。
b. 将p指向下一个节点。
3. 遍历结束后,所有偶数已经输出。
阅读全文