📅  最后修改于: 2023-12-03 14:54:45.107000             🧑  作者: Mango
在链表中搜索元素是链表算法中经常遇到的问题。这里将介绍两种常见的方法,分别是迭代和递归。
迭代是一种通过重复执行一组指令来解决问题的算法。在链表中,我们可以编写一个 while 循环,来枚举链表中的每个节点并查找目标元素。
def search_iterative(head, target):
curr = head
while curr:
if curr.val == target:
return True
curr = curr.next
return False
代码解释:
递归是一种通过不断将问题分解为更小的,更易于处理的子问题的算法。在链表中,我们可以递归地搜索链表,并将目标元素放在子问题中。
def search_recursive(head, target):
if not head:
return False
if head.val == target:
return True
return search_recursive(head.next, target)
代码解释:
两种方法的时间复杂度都是 O(n),其中 n 表示链表的长度。选择哪种方法取决于问题的复杂性,以及程序员的个人偏好。