摘要:
题目链接:栈的压入、弹出序列 题意:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序 阅读全文
摘要:
题目链接:包含min函数的栈 题意:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。 题解:使用两个栈,一个用来存放数据,一个用来存储min。我们在入栈的时候 阅读全文
摘要:
题目链接:顺时针打印矩阵 题意:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 题解:画个图。模拟。 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 发现规律,从左向右走 阅读全文
摘要:
题目链接:树的子结构 题意:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 题解:先在A中找到B的根结点,找的过程递归实现。再判断在A中以这个根结点为节点的子树是不是和B一样。 代码: 1 /* 2 struct TreeNode { 3 int val; 阅读全文
摘要:
题目链接:合并两个排序的链表 题意:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题解:最开始做一下特殊处理,判空操作。然后判断当前两个链表节点哪个小,就把哪个先放入合并链表中,再做递归。 代码: 1 /* 2 struct ListNode { 3 阅读全文