摘要:
面试27题: 题目:二叉树的镜像 题:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 解题代码: 阅读全文
摘要:
面试26题: 题目:树的子结构 题:输入两棵二叉树A和B,判断B是不是A的子结构。 解题思路:递归,注意空指针的情况。 解题代码: 另外,如果树节点的val值是double的时候,需要自定义一个equal函数,当num1和num2相差小于1e-07时即可认为是相等的,详见剑指offer P151 阅读全文
摘要:
面试25题:题目:合并两个排序的链表 题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路:递归,并需注意对空链表单独处理。 解题代码: 阅读全文
摘要:
面试24题: 题目:反转链表 题:输入一个链表,反转链表并输出反转后链表的头节点。 解题思路:注意反转时出现断裂现象,定义3个指针,分别指向当前遍历到的节点pNode、它的前一个节点pPrev及后一个节点pNext。 解题代码: 阅读全文
摘要:
面试23题: 题目:如果一个链表中包含环,如何找出环的入口节点? 解题分析:其实此题可以分解为三个题目:1)如何判断一个链表中是否包含环?2)如何找到环的入口节点?3)如何得到环中节点的数目? 解决此题:可以设置两个指针,一快一慢。 1.两个指针一个fast、一个slow同时从一个链表的头部出发 f 阅读全文
摘要:
面试22题: 题目:链表中倒数第k个节点 题:输入一个链表,输出该链表中倒数第k个结点。 解题思路:为了实现只遍历链表一次就能找到倒数第k个节点,我们可以定义两个指针。让第一个指针先向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k- 阅读全文