高阶-1 链表-查找链表最后节点
时间: 2023-07-17 08:59:49 浏览: 124
要查找链表的最后一个节点,可以使用两个指针来迭代链表。一个指针指向当前节点,另一个指针指向当前节点的下一个节点。当后一个指针为空时,当前指针就指向了最后一个节点。
以下是一个示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def find_last_node(head):
if not head:
return None
current = head
while current.next:
current = current.next
return current
```
这个代码中,我们定义了一个链表节点类 ListNode,包含一个值 val 和一个指向下一个节点的指针 next。函数 `find_last_node` 接受链表的头节点作为参数,并返回最后一个节点。
我们从头节点开始,通过迭代将当前节点指针移动到下一个节点,直到遇到最后一个节点(即下一个节点为空)。最后,返回当前节点作为结果。
希望这个回答对你有帮助!如果还有其他问题,请随时提问。
相关问题
链表-查找链表最后节点函数pta
根据提供的引用内容,以下是一个查找链表最后节点的函数的示例代码:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
def find_last_node(head):
if head is None:
return None
current = head
while current.next is not None:
current = current.next
return current
# 示例链表
head = Node(1)
node2 = Node(2)
node3 = Node(3)
head.next = node2
node2.next = node3
last_node = find_last_node(head)
print("The value of the last node is:", last_node.value) # 输出:The value of the last node is: 3
```
该函数通过遍历链表,直到找到最后一个节点,并返回该节点的值。如果链表为空,则返回None。
高阶-5 链表——统计节点个数 定义函数,遍历一个不带头结点的链表,统计链表上的节点个数
好的,根据您的要求,我理解您需要一个 C++ 函数,能够统计一个不带头结点的链表上的节点个数。那么,以下是一个示例代码:
```cpp
int countNodes(ListNode* head) {
int count = 0;
ListNode* cur = head;
while (cur != nullptr) {
count++;
cur = cur->next;
}
return count;
}
```
在这个示例函数中,我们使用了一个计数器变量 count,以及一个指向当前节点的指针 cur。首先,将计数器初始化为 0,然后将 cur 指向链表的头结点 head,然后开始循环遍历链表。每循环一次,计数器加 1,然后将 cur 指向下一个节点,直到 cur 指向 nullptr 表示已经遍历完整个链表,此时返回计数器的值即可。
需要注意的是,这个函数的参数类型是 ListNode*,表示链表的头指针。因此,在使用这个函数时,需要先构建一个链表,并将链表的头指针作为参数传入。