(最近在写Json解析器,刷题的时间有所减少,今天只有五道剑指offer)
题目名称
- 对称的二叉树(剑指offer #28)
- 顺时针打印矩阵(剑指offer #29)
- 包含min函数的栈(剑指offer #30)
- 栈混洗甄别(剑指offer #31)
- 树的层次遍历(剑指offer #32)
对称二叉树
解题思路
递归,若root的左右子均存在,判断其值是否相等,再判断left->right与right->left是否相等 && left->left与right->right是否相等。
解题方案
1 | class Solution { |
顺时针打印矩阵
解题思路
设立好四个边界,依次遍历即可
解题方案
1 | class Solution { |
包含min的栈
解题思路
用两个栈substack与lastmin和一个私有data membermin实现这一数据结构。初始化时令min=INT_MAX。当执行pop操作时,若substack栈顶元素为min,令min=lastmin.top,pop lastmin,否则pop substack。当执行push操作时,若当前元素小于min,min等于当前元素,push进入lastmin,否则push入substacck。
解题方案
1 | class Solution { |
栈混洗甄别
解题思路
用一个辅助栈,若栈为空或栈顶元素与对应元素不相等,一直入栈,若某时刻无法入栈则返回false。若栈顶元素与当前相等则出栈,执行下一次比对。
解题方案
1 | class Solution { |
树的层次遍历
解题思路
层次遍历即为BFS,记得使用队列。
解题方案
1 | class Solution { |