摘要:
Promblem: 给定两个二叉树T1和T2,返回T1的某个子树结构是否与T2的结构相等。 Solution: 首相将两棵树进行序列化【切记加上分割符和空节点标记】, 然后使用KMP算法进行两个字符串匹配,判断子树串是否属于原树串即可 Code: 阅读全文
摘要:
Problem: 两个单链表相交的一系列问题 【题目】 在本题中,单链表可能有环,也可能无环。给定两个 单链表的头节点 head1和head2,这两个链表可能相交,也可能 不相交。请实现一个函数, 如果两个链表相交,请返回相交的 第一个节点;如果不相交,返回null 即可。 要求: 如果链表1 的长 阅读全文
摘要:
Problem: 【题目】 给定一个单向链表的头节点head,节点的值类型是整型,再给定一个整数pivot。 实现一个调整链表的函数,将链表调整为左部分都是值小于 pivot的节点, 中间部分都是值等于pivot的节点,右部分都是值大于 pivot的节点。 除这个要求外,对调整后的节点顺序没有更多的 阅读全文
摘要:
Problem: 【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数, 判断K是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果K为7,返回true;如果K为6,返回false。 阅读全文
摘要:
Problem: “之”字形打印矩阵【题目】 给定一个矩阵matrix,按照“之”字形的方式打印这个矩阵, 例如: 1 2 3 4 5 6 7 8 9 10 11 12 “之”字形打印的结果为:1,2,5,9,6,3,4,7,10,11,8,12 【要求】 额外空间复杂度为O(1) Solution 阅读全文
摘要:
Problem: 反转单向和双向链表 【题目】 分别实现反转单向链表和反转双向链表的函数。 【要求】 如果链表长度为N,时间复杂度要求为O(N),额外空间 复杂度要求为O(1) Solution: 学会使用指针 Code: 阅读全文
摘要:
Problem: 旋转正方形矩阵【题目】 给定一个整型正方形矩阵matrix, 请把该矩阵调整成顺时针旋转90度的样子。 【要求】 额外空间复杂度为O(1). Solution: 同样,采用由外向内一圈一圈变换,找到元素变换位置的规律即可。 难点在于区分偶数维矩阵和奇数维矩阵的不同操作 Code: 阅读全文
摘要:
Problem: 【题目】 给定一个整型矩阵matrix,请按照转圈的方式打印它。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11, 10 【要求】 额外空间复杂度为O(1)。 阅读全文
摘要:
Problem: 如何仅用队列结构实现栈结构? Solution: 队列是先进先出,而栈是先进后出 故使用两个队列来实现一个栈的功能 一个存放原来的数据, 另一个做数据倒腾的容器 Code: Problem2: 如何仅用栈结构实现队列结构? 解题思路: 同样的,使用两个栈Data,Temp来实现列表 阅读全文
摘要:
题目描述: 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 【要求】 1.pop、push、getMin操作的时间复杂度都是O(1)。 2.设计的栈类型可以使用现成的栈结构。 解题思路: 使用一个辅助栈,里面存的目前栈中的最小值 代码实现: 阅读全文