![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【程序员面试金典】
我在天上飘
自信的生活态度最重要!
展开
-
检查是否为BST
题目描述请实现一个函数,检查一棵二叉树是否为二叉查找树。给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int原创 2016-05-24 20:14:02 · 318 阅读 · 0 评论 -
树转链表
题目描述有一个类似结点的数据结构TreeNode,包含了val属性和指向其它结点的指针。其可以用来表示二叉查找树(其中left指针表示左儿子,right指针表示右儿子)。请编写一个方法,将二叉查找树转换为一个链表,其中二叉查找树的数据结构用TreeNode实现,链表的数据结构用ListNode实现。给定二叉查找树的根结点指针root,请返回转换成的链表的头指针。'原创 2016-05-24 21:45:59 · 632 阅读 · 0 评论 -
元素查找
题目描述有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。原创 2016-05-25 11:31:00 · 224 阅读 · 0 评论 -
找出字符串
有一个排过序的字符串数组,但是其中有插入了一些空字符串,请设计一个算法,找出给定字符串的位置。算法的查找部分的复杂度应该为log级别。给定一个string数组str,同时给定数组大小n和需要查找的string x,请返回该串的位置(位置从零开始)。测试样例:["a","b","","c","","d"],6,"c"返回:3【思路】二分查找,需要特殊处理的是当st原创 2016-05-25 13:17:43 · 231 阅读 · 0 评论 -
输出单层结点
对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。【思路】用两个队列实现树的层序遍历,当遍历到dep层时,创建链表。原创 2016-05-23 15:53:31 · 218 阅读 · 0 评论 -
变位词排序
题目描述请编写一个方法,对一个字符串数组进行排序,将所有变位词合并,保留其字典序最小的一个串。这里的变位词指变换其字母顺序所构成的新的词或短语。例如"triangle"和"integral"就是变位词。给定一个string的数组str和数组大小int n,请返回排序合并后的数组。保证字符串串长小于等于20,数组大小小于等于300。测试样例:["ab","ba","abc原创 2016-05-23 16:40:49 · 620 阅读 · 0 评论 -
找出字符串
题目描述有一个排过序的字符串数组,但是其中有插入了一些空字符串,请设计一个算法,找出给定字符串的位置。算法的查找部分的复杂度应该为log级别。给定一个string数组str,同时给定数组大小n和需要查找的stringx,请返回该串的位置(位置从零开始)。测试样例:["a","b","","c","","d"],6,"c"返回:3【思路】题目要求log级别原创 2016-05-23 16:47:16 · 267 阅读 · 0 评论 -
二叉树平衡检查
题目描述实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。【思路】递归/*struct TreeNode { int val; struct TreeNode *left; struct Tre原创 2016-05-23 21:35:21 · 210 阅读 · 0 评论 -
有向路径检查
题目描述对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode*b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。/*struct UndirectedGraphNode { i原创 2016-05-23 22:21:29 · 344 阅读 · 0 评论