摘要: 题目: 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。 从根节点开始往下一直到叶节点所经过的节点形成一条路径。 思路: 在树的前序、中序、后序遍历中,只有前序遍历是首先访问根节点的。 当用前序遍历的方式访问到某一节点时,把该节点添加到路径上,并累加该节点的值。 如果该节点为 阅读全文
posted @ 2019-08-11 11:10 HarSong13 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后续遍历的结果。如果是则返回true,否则返回false 思路: 后序遍历的特点,最后一个数字为树的根节点的值,数组中前边的数字可以分为两部分,第一部分是左子树的值,都比根节点小,第二部分都是右子树的值,都比根节点大 代码: 阅读全文
posted @ 2019-08-10 20:40 HarSong13 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目: 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印 思路: 每一次打印一个节点的时候,如果该节点有子节点,则把字节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的操作,直到队列中所有的节点都打印出来 代码实现: 阅读全文
posted @ 2019-08-10 15:49 HarSong13 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 思路: 引入辅助栈 代码实现: 阅读全文
posted @ 2019-08-10 15:15 HarSong13 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目: 定义栈的数据结构,在该类型中实现一个能够找到栈的最小数的min函数,在该栈中,调用min,push,pop的时间复杂度都是O(1) 思路: 把每次的最小元素(之前的最小元素和新压入栈的元素两者的较小值)都保存起来放到另外一个辅助栈里。 如果每次都把最小元素压入辅助栈,那么就能保存辅助栈的栈顶 阅读全文
posted @ 2019-08-10 10:23 HarSong13 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 思路: 把打印一圈分为四步:第一步从左往右打印一行,第二步从上到下打印一行,第三步从右向左打印一行,第四步从下到上打印一行,每一步根据起始坐标和终止坐标用一个循环就能打印出一行或者一列。 最后一圈有可能退化成只有一行、只有一列、甚 阅读全文
posted @ 2019-08-10 09:49 HarSong13 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一个函数,输入一个二叉树,该函数输出它的镜像 代码: 阅读全文
posted @ 2019-08-10 08:57 HarSong13 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入两棵二叉树A和B,判断B是不是A的子结构 思路: 分为两步: (1)在树A中找到和B的根节点的值一样的节点R (2)判断树A中以R为根节点的子树是不是包含和树B一样的结构 阅读全文
posted @ 2019-08-09 21:45 HarSong13 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入两个递增序列的链表,合并这两个链表并使新链表中的节点仍然为按照递增顺序的。 思路: (1)定义一个指向新链表的指针,暂且让它指向NULL (2)比较两个链表的头节点,让较小的头节点作为新链表的头节点 (3)a:循环比较两个链表的其余节点,让较小的节点作为上一新节点的后一个节点。直到有一个 阅读全文
posted @ 2019-08-09 21:16 HarSong13 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点 思路: (1)保存当前节点的下一个节点 (2)将当前节点的next指向反转,指向上一个节点 (3)更新pre为当前节点 (4)将当前节点改为下一个节点 代码实现: 阅读全文
posted @ 2019-08-09 15:35 HarSong13 阅读(217) 评论(0) 推荐(0) 编辑