文章

37

粉丝

0

获赞

7

访问

3.5k

头像
【2012年】408计算机统考真题模拟考试 - 第42题答案笔记
数据结构
发布于2025年5月30日 13:17
阅读数 15

计算机考研408统考历年真题及答案解析

(1) 反转两个链表,然后再同时遍历,直到碰到第一个不相等的字母或为null(即碰到未反转前的某个链表的头结点),那么它的前驱结点(若第一个字母就不同,则为空)即为我们要的结果。
(2) 使用Java语言:
// 算法类
class Solution {
    // 算法主体
    public Node solution(Node str1, Node str2) {
        // 如果str1和str2中有一个是空链表,直接返回null即可
        if (str1 == null || str2 == null) return null;

        // 反转两个链表,并获取反转后的头结点
        str1 = reverseLinkList(str1);

        str2 = reverseLinkList(str2);
        // 反转后,若头结点(即原来的最后一个结点)不同,直接返回null
        if (str1.data != str2.data) return null;
        // 否则,使用四个指针分别指向str1、str1.next、str2、str2.next

        Node ptr1 = str1, ptr2 = str2, ptr1n = str1.next, ptr2n = str2.next;
        // 四个指针同时后移,直到碰到第一个不相等的字母或为null(即碰到未反转前的某个链表的头结点),那么ptr1和ptr2就为结果

        while ((ptr1n != null &...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发