设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的节点,返回该节点的数据域。 输入样例: n 12 链表值:5 6 7 3 6 8 9 11 13 4 2 0 输出:13的完整代码
时间: 2024-09-11 13:16:32 浏览: 31
递归链表中值最大的节点
4星 · 用户满意度95%
为了设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的节点,并返回该节点的数据域,我们可以遵循以下步骤:
1. 创建链表节点的类,该类包含数据域以及指向下一个节点的指针。
2. 创建一个函数来初始化链表,接收一个数组,根据数组元素创建链表。
3. 创建一个函数来遍历链表,找到值最大的节点,并返回该节点的数据域。
4. 创建主函数来演示整个过程。
下面是一个使用Python实现的完整代码示例:
```python
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def create_linked_list(arr):
head = ListNode(arr[0])
current = head
for value in arr[1:]:
current.next = ListNode(value)
current = current.next
return head
def find_max_in_linked_list(head):
if not head:
return None
max_node = head
current = head.next
while current:
if current.val > max_node.val:
max_node = current
current = current.next
return max_node.val
if __name__ == "__main__":
n = 12
linked_list_values = [5, 6, 7, 3, 6, 8, 9, 11, 13, 4, 2, 0]
head = create_linked_list(linked_list_values)
max_value = find_max_in_linked_list(head)
print(f"最大值为: {max_value}")
```
当执行上述代码时,它会创建一个链表,并通过 `find_max_in_linked_list` 函数找到值最大的节点,并输出该节点的数据域。
阅读全文