摘要: 面试28题: 题目:对称的二叉树题: 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 解题思路: 可以定义一种遍历算法,先遍历右子节点再遍历左子节点。注意,我们必须把遍历二叉树时遇到的空指针考虑进来。 解题代码: 阅读全文
posted @ 2018-06-19 21:37 Fintech带你飞 阅读(890) 评论(0) 推荐(0)
摘要: 面试27题: 题目:二叉树的镜像 题:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 解题代码: 阅读全文
posted @ 2018-06-19 21:15 Fintech带你飞 阅读(1123) 评论(0) 推荐(0)
摘要: 面试26题: 题目:树的子结构 题:输入两棵二叉树A和B,判断B是不是A的子结构。 解题思路:递归,注意空指针的情况。 解题代码: 另外,如果树节点的val值是double的时候,需要自定义一个equal函数,当num1和num2相差小于1e-07时即可认为是相等的,详见剑指offer P151 阅读全文
posted @ 2018-06-19 11:57 Fintech带你飞 阅读(1099) 评论(0) 推荐(0)
摘要: 面试25题:题目:合并两个排序的链表 题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路:递归,并需注意对空链表单独处理。 解题代码: 阅读全文
posted @ 2018-06-19 11:22 Fintech带你飞 阅读(967) 评论(0) 推荐(0)
摘要: 面试24题: 题目:反转链表 题:输入一个链表,反转链表并输出反转后链表的头节点。 解题思路:注意反转时出现断裂现象,定义3个指针,分别指向当前遍历到的节点pNode、它的前一个节点pPrev及后一个节点pNext。 解题代码: 阅读全文
posted @ 2018-06-19 10:53 Fintech带你飞 阅读(1092) 评论(0) 推荐(0)
摘要: 面试23题: 题目:如果一个链表中包含环,如何找出环的入口节点? 解题分析:其实此题可以分解为三个题目:1)如何判断一个链表中是否包含环?2)如何找到环的入口节点?3)如何得到环中节点的数目? 解决此题:可以设置两个指针,一快一慢。 1.两个指针一个fast、一个slow同时从一个链表的头部出发 f 阅读全文
posted @ 2018-06-19 10:37 Fintech带你飞 阅读(977) 评论(0) 推荐(0)
摘要: 面试22题: 题目:链表中倒数第k个节点 题:输入一个链表,输出该链表中倒数第k个结点。 解题思路:为了实现只遍历链表一次就能找到倒数第k个节点,我们可以定义两个指针。让第一个指针先向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k- 阅读全文
posted @ 2018-06-19 09:30 Fintech带你飞 阅读(955) 评论(0) 推荐(0)