检查两个链表是否相同的 Javascript 程序
当两个链表具有相同的数据并且数据的排列也相同时,它们是相同的。例如,链表 a (1->2->3)和 b(1->2->3)是相同的。。编写一个函数来检查给定的两个链表是否相同。
方法(递归): 递归求解代码比迭代代码干净得多。然而,您可能不想将递归版本用于生产代码,因为它将使用与列表长度成比例的堆栈空间。
java 描述语言
<script>
// A recursive javascript method to check if
// two linked lists are identical or not
function areIdenticalRecur(a, b)
{
// If both lists are empty
if (a == null && b == null)
return true;
// If both lists are not empty, then
// data of current nodes must match,
// and same should be recursively true
// for rest of the nodes.
if (a != null && b != null)
return (a.data == b.data) &&
areIdenticalRecur(a.next, b.next);
// If we reach here, then one of the lists
// is empty and other is not
return false;
}
/* Returns true if linked lists a and b
are identical, otherwise false */
function areIdentical( listb)
{
return areIdenticalRecur(this.head,
listb.head);
}
// This code contributed by aashish1995
</script>
时间复杂度: O(n)对于迭代和递归版本。n 是 a 和 b 中较小列表的长度。
更多详情请参考完全相同链表的完整文章!
版权属于:月萌API www.moonapi.com,转载请注明出处