摘要: 一、题目 1、审题 2、分析 给出逆波兰表达式(即运算数写前面,操作符写后边),求出运算的正确结果。 二、解答 1、思路: 采用一个 Stack 存储操作数,当碰到运算符时,出栈栈顶的两个元素进行运算即可。最终遍历完数组后, Stack 中存在的唯一一个数即为结果。 阅读全文
posted @ 2018-10-12 21:00 skillking2 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 将一个链表节点进行排序,时间复杂度为 NLogN, 且使用常数的空间复杂度。 二、解答 1、思路: 采用归并排序的思想。 ①、将链表进行切割 ②、将切割的链表进行排序 ③、合并切割的链表。 阅读全文
posted @ 2018-10-12 18:11 skillking2 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个链表,采用插入排序的方式将节点进行排序。 二、解答 1、思路: 方法一、 ①、将第一个节点结点作为新的有序链表的开始。指针 node 指向 head, next 指向 head 的下一个元素。 ②、将 next 值依次与 node 所指链表节点进行比较,并插入合 阅读全文
posted @ 2018-10-12 17:41 skillking2 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、给出一棵二叉树,采用迭代输出其后序遍历序列值。 二、解答 1、思路: 方法一、 采用一个 Stack 记录节点,一个指针 pre 指示 right 节点是否访问过。 方法二、 ①、伪前序遍历比较好写: 根 > 右 > 左; ②、后续遍历 : 左 > 右 > 根 , 即为 ① 阅读全文
posted @ 2018-10-12 16:44 skillking2 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一棵二叉树,采用迭代输出先序遍历的节点值。 二、解答 1、思路: 方法一、 采用 Stack + 迭代的方式。 优化: Stack 只用于存储 Right 节点。 方法二、 采用 InOrder 方式遍历,但输出为 InOrder 顺序。 方法三、 采用 Morri 阅读全文
posted @ 2018-10-12 11:15 skillking2 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个字符串,求其可以切割成字典List 中的元素的所有切法。 二、解答 1、思路: 方法一、 采用 DFS 方式。 从字典表中开始拿字符串与 S 的头部进行匹配,若匹配成功,则继续拿字典表在 S 的剩下的字符串进行匹配。直至 S 剩下的字符串为空,此时就找到一种切法 阅读全文
posted @ 2018-10-12 10:20 skillking2 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一个单向链表,将其重新排序,排序规则如上。 二、解答 1、思路: 方法一、 观察上边的重新排序后的链表。可以分为三个步骤。 ①、找到中间节点; ②、将后边部分的链表进行翻转。 ③、在前边部分的链表中间隔插入后边部分链表的一个节点。 阅读全文
posted @ 2018-10-12 08:43 skillking2 阅读(107) 评论(0) 推荐(0) 编辑