剑指offer
Enjoy_now
享受生活,享受代码
展开
-
剑指offer49:字符串转化为整数
字符串转化为整数:各种陷阱题目简介题目本身不难,但需要考虑的非法输入比较多,所以还是值得学习一下,用来应付各种比较“严格的”面试。 int StrToInt(const char* str);考虑因素: 1. str指针是否为空,str是否为空串 2. 正负号输入 3. 整数溢出 (若还有其他考虑,还请赐教。)编写代码bool g_invalid_input_49 = false;in原创 2016-03-29 14:51:23 · 408 阅读 · 0 评论 -
剑指offer:17 合并两个排序的链表
剑指offer 面试题17: “题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图3.7中的链表1和链表2,则合并之后的升序链表如链表3所示。链表结点定义如下: typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *pNext; }原创 2016-03-16 21:41:40 · 652 阅读 · 0 评论 -
剑指offer:面试题16 反转链表
剑指offer:面试题16 反转链表 链表节点定义如下: typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *pNext; }LNode, *LinkList; 1 题意分析: 直接想到头插法建立单链表。 2 思路分析: a 假设有两条链表L1和L2,原创 2016-03-17 12:30:29 · 554 阅读 · 0 评论 -
剑指offer 37:求两个链表的第一个公共节点
剑指offer 37: 两个单链表的第一个公共节点蛮力法在第一个链表上顺序遍历每个节点,每遍历一个节点的时候,在第二个链表上顺序遍历每个节点,判断两节点是否相等。时间复杂度为o(m * n);空间换时间:栈两个链表如果有公共节点,则公共节点会在表尾。可以从两个链表的尾部开始比较,最后一个相同的节点即为第一个公共节点。然而链表不能反向遍历,因此想到遍历每一个链表,将每个节点入栈,然后依次比较两个栈顶节原创 2016-03-30 15:07:18 · 515 阅读 · 0 评论 -
剑指 offer 56:求链表中环的入口节点
剑指offer 56:求链表中环的入口节点题目:一个链表中包含环,如何找出环的入口节点?预备知识:判断链表是否有环用一个指针该思路比较简单,设置一个指针,依次遍历链表,每走一步判断是否等于头即可。 代码如下:bool IsCLinkList(LinkList L) { if (!L) { return false; } LNode *p = L; wh原创 2016-03-31 16:30:34 · 480 阅读 · 0 评论