PTA7-1单链表中确定值最大的结点
时间: 2024-05-05 08:17:26 浏览: 154
要确定单链表中值最大的结点,可以遍历整个链表,同时记录当前最大值和对应的结点,遍历结束后返回最大值对应的结点即可。
以下是示例代码:
```python
def find_max_node(head):
if head is None:
return None
max_node = head
max_value = head.val
cur = head.next
while cur is not None:
if cur.val > max_value:
max_value = cur.val
max_node = cur
cur = cur.next
return max_node
```
相关问题
pta6-1 单链表逆转
好的,pta6-1 单链表逆转是一道经典的链表题目,其主要思路是通过遍历链表,将每个节点的 next 指针指向其前驱节点,最终将整个链表逆序。具体实现可以参考以下代码:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
ListNode *prev = NULL, *curr = head;
while (curr != NULL) {
ListNode *next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}
int main() {
ListNode *head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
head->next->next->next = new ListNode(4);
head->next->next->next->next = new ListNode(5);
ListNode *newHead = reverseList(head);
while (newHead != NULL) {
cout << newHead->val << " ";
newHead = newHead->next;
}
cout << endl;
return 0;
}
```
7-5 单链表基本操作pta
对于单链表的基本操作,包括插入节点、删除节点和查找节点等。假设我们有一个单链表的头节点为head,那么可以进行下面的操作:
1. 插入节点:在指定位置插入一个新节点。可以通过以下步骤实现:
- 创建一个新节点,并将新节点的值赋给它。
- 找到要插入位置的前一个节点,将前一个节点的next指针指向新节点。
- 将新节点的next指针指向原来前一个节点的next指针所指向的节点。
2. 删除节点:删除指定位置的节点。可以通过以下步骤实现:
- 找到要删除位置的前一个节点。
- 将前一个节点的next指针指向要删除节点的下一个节点。
3. 查找节点:根据给定的值,在链表中查找对应的节点。可以通过以下步骤实现:
- 从头节点开始遍历链表,直到找到与给定值相等的节点或者到达链表末尾。
以上是单链表的基本操作。如果你有具体的需求或者还有其他问题,可以继续提问。
阅读全文