如何判断两个链表相等

发布时间:2024年01月22日

要判断两个链表是否相等,需要比较它们的节点值以及节点的顺序。下面是一种常见的方法来判断两个链表是否相等:

  1. 首先,判断两个链表的长度是否相等。如果长度不相等,则链表肯定不相等。
  2. 然后,逐个比较两个链表对应位置的节点值是否相等。从头节点开始,依次比较每个节点的值。
  3. 如果遍历完链表的所有节点,并且每个节点的值都相等,则可以确定两个链表相等。

以下是一个示例代码,演示了如何实现上述逻辑:

public boolean areLinkedListsEqual(ListNode head1, ListNode head2) {
    ListNode curr1 = head1;
    ListNode curr2 = head2;

    // Step 1: 判断链表长度是否相等
    while (curr1 != null && curr2 != null) {
        curr1 = curr1.next;
        curr2 = curr2.next;
    }
    
    if (curr1 != null || curr2 != null) {
        return false; // 链表长度不相等
    }

    // Step 2: 比较节点值
    curr1 = head1;
    curr2 = head2;
    while (curr1 != null && curr2 != null) {
        if (curr1.val != curr2.val) {
            return false; // 节点值不相等
        }
        curr1 = curr1.next;
        curr2 = curr2.next;
    }

    // Step 3: 比较完所有节点,两个链表相等
    return curr1 == null && curr2 == null;
}

文章来源:https://blog.csdn.net/weixin_67589420/article/details/135757469
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。