摘要:
/** * * 问题:单链表选择排序 * * 给定一个无序单链表的头节点head, 实现单链表的选择排序。 * * 要求:额外空间复杂度为0(1)。 * * 既然要求额外空间复杂度为 0(1),就不能把链表装进数组等容器中排序,排好序之后再重新连接, *而是要求在原链表上利用有限几个变量完成选择排序 阅读全文
摘要:
/*** * 题目:删除单链表中指定值的节点 * 给定一个链表的头节点 head和一个整数 num, 请实现函数将值为 num的节点全部删除。 * 例如, 链表为1->2->3->4->null, num=3, 链表调整后为: 1->2->4->null。 * * 解题:利用栈将不等于 num的节点 阅读全文
摘要:
/** * 问题:删除无序单链表中值重复出现的节点 * * 给定一个无序单链表的头节点head, 删除其中值重复出现的节点。 * 例如: 1->2->3->3->4->4->2->1->1->null, 删除值重复的节点之后 * 为 1->2->3->4->null。 * * 要求: * 如果链表长 阅读全文
摘要:
恢复内容开始 /** * 问题:将单链表的每 K个节点之间逆序 * 给定一个单链表的头节点 head, 实现一个调整单链表的函数, 使得每 K个节点之间逆序, * 如果最后不够 K个节点一组, 则不调整最后几个节点。 * * 例如: * 链表: 1->2->3->4->5->6->7->8->nul 阅读全文
摘要:
/** * * 问题:判断两个字符串是否为变形词 * 给定两个字符串str1和str2, 如果str1和str2中出现的字符种类一样且每种字符出现 * 的次数也一样,那么 str1与 str2互为变形词。 * * 举例: * str1 = " 123", str2="231", 返回 true。 * 阅读全文
摘要:
/** * 问题:有环链表相交问题 * 如何判断两个有环链表是否相交, 相交则返回第一个相交节点, 不相交则返回 null。 * * 两个链表各自的第一个入环节点, 假设链表1的第一个入环节点记为 loop1,链表 2的第一个 * 入环节点记为 loop2。 * * 1.如果loop1 == loo 阅读全文
摘要:
/** * * 问题: * 判断无环单链表相交问题 * 如何判断两个无环链表是否相交, 相交则返回第一个相交节点,不相交则返回 null。 * 如果两个无环链表相交, 那么从相交节点开始, 一直到两个链表终止的这一段, 是两个链 * 表共享的。 * * 分析: *1.链表 1从头节点开始,走到最后一 阅读全文
摘要:
/** * 问题:链表环问题 * 判断一个链表是否有环, 如果有, 则返回第一个进入环的节点, 没有则返回null。 * * 分析: * 如果一个链表没有环, 那么遍历链表一定可以遇到链表的终点: 如果链表有环, 那 *么遍历链表就永远在环里转下去了。如何找到第一个入环节点, 具体过程如下: * * 阅读全文
摘要:
/** * * 问题:两个单链表相加生成相加链表 * 假设链表中每一个节点的值都在0-9之间, 那么链表整体就可以代表一个整数。 * 例如: 9->3->7, 可以代表整数 937。 * 给定两个这种链表的头节点 head1和 head2, 请生成代表两个整数相加值的结果链表。 * 例如: 链表 1 阅读全文
摘要:
/** * * 问题:两个单链表相加生成相加链表 * 假设链表中每一个节点的值都在0-9之间, 那么链表整体就可以代表一个整数。 * 例如: 9->3->7, 可以代表整数 937。 * 给定两个这种链表的头节点 head1和 head2, 请生成代表两个整数相加值的结果链表。 * 例如: 链表 1 阅读全文