面试题28:对称的二叉树

题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *righ...

2018-07-31 10:57:49

阅读数:42

评论数:0

面试题27:二叉树的镜像

题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ ...

2018-07-31 09:53:36

阅读数:15

评论数:0

面试题26:树的子结构

题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tre...

2018-07-30 12:12:33

阅读数:35

评论数:0

面试题25:合并两个排序的链表

题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : ...

2018-07-30 10:07:26

阅读数:9

评论数:0

面试题24:反转链表

题目描述 输入一个链表,反转链表后,输出新链表的表头。 方法一: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL)...

2018-07-29 17:06:40

阅读数:39

评论数:0

面试题23:链表中环的入口结点

题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(...

2018-07-29 16:04:04

阅读数:41

评论数:0

面试题22:链表中倒数第k个结点

题目描述 输入一个链表,输出该链表中倒数第k个结点。 方法一:空间换时间,注意k为无符号整数,k-1得到的将不是-1,而是4292967295(无符号的0xFFFFFFFF)。 /* struct ListNode { int val; struct ListNode *ne...

2018-07-29 11:10:13

阅读数:24

评论数:0

面试题21:调整数组顺序使奇数位位于偶数位前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法一:题目要求稳定,则从插入排序,冒泡排序,归并,基数排序中选,使用插入排序,时间O(n^2) class...

2018-07-28 15:11:44

阅读数:41

评论数:0

面试题20:表示数值的字符串

题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。 class Solution ...

2018-07-27 21:30:30

阅读数:18

评论数:0

面试题19:正则表达式匹配

题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均...

2018-07-27 20:09:20

阅读数:85

评论数:0

字符串指针操作

char s[]="abc"; char *ptr="abc"; cout<<s<&am...

2018-07-27 16:15:44

阅读数:178

评论数:0

面试题18:删除链表的节点(二)删除链表中重复的节点

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后...

2018-07-27 11:10:58

阅读数:15

评论数:0

面试题18:删除链表的节点(一)在O(1)时间内删除链表节点

题目描述: 给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点 void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted) { if(!pListHead || !pToBeDeleted) ...

2018-07-26 10:52:00

阅读数:19

评论数:0

面试题17:打印从1到最大的n位数

题目描述: 题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 方法一: void Print1ToMaxOfNDigits_1(int n) { if (n <= 0) return...

2018-07-24 21:52:19

阅读数:35

评论数:0

面试题16:数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 注意几种特殊的输入情况,base为0,以及exponent正负时求指数的差异。 方法一: class Solution { public: double Pow...

2018-07-24 10:24:04

阅读数:22

评论数:0

面试题15:二进制中1 的个数

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 方法一:掩码 class Solution { public: int NumberOf1(int n) { int cnt = 0; unsigned int fla...

2018-07-20 12:05:00

阅读数:23

评论数:0

面试题13:机器人的运动范围

题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为...

2018-07-19 17:08:02

阅读数:13

评论数:0

面试题12:矩阵中的路径

题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e...

2018-07-19 16:14:28

阅读数:39

评论数:0

面试题11:旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 类似二...

2018-07-19 10:19:32

阅读数:15

评论数:0

面试题10:斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 class Solution { public: int Fibonacci(int n) { if(n &...

2018-07-18 16:24:44

阅读数:16

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭