摘要: 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 思路: 把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。 阅读全文
posted @ 2016-08-17 15:42 no_one 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种 阅读全文
posted @ 2016-08-17 11:04 no_one 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: 第一步:根据原始链表的每个节点N创建对应的N’,把N’链接到N的 阅读全文
posted @ 2016-08-17 10:03 no_one 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 阅读全文
posted @ 2016-08-16 21:00 no_one 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 阅读全文
posted @ 2016-08-16 14:58 no_one 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 这道题实质是考查树的遍历算法。从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点, 则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出 阅读全文
posted @ 2016-08-16 13:45 no_one 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是 阅读全文
posted @ 2016-08-16 10:40 no_one 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路 把每次的最小元素(之前的最小元素和新压入战的元素两者的较小值)都保存起来放到另外一个辅助栈里。 如果每次都把最小元素压入辅助栈, 那么就能保证辅助栈的栈顶一直都是最小元素.当最小元素从数据栈内被弹出之后,同时弹出 阅读全文
posted @ 2016-08-16 09:22 no_one 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路: 把打印一圈分为四步 阅读全文
posted @ 2016-08-16 08:43 no_one 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 阅读全文
posted @ 2016-08-15 14:29 no_one 阅读(164) 评论(0) 推荐(0) 编辑