第三周题做完了,总结一下。
acwing35 反转链表
题目:https://www.acwing.com/problem/content/33/
老题目了,不讲了,但还是需要好好写,容易写错。
https://www.acwing.com/problem/content/submission/code_detail/116534/
acwing36 合并两个排序的链表
题目:https://www.acwing.com/problem/content/34/
也是老题目,二路并归
https://www.acwing.com/problem/content/submission/code_detail/116564/
acwing37 树的子结构
树的题目我总是不太会,这道也不例外,在一个树中找存不存在另一颗树,然后我们的思路是判断子树p1是否包含p2,如果不相同的话,找自己的子树是否存在另一棵树。
判断子树是不是包含关系,如果p2的节点为0,就可以认为是包含了,如果p1为0,而p2不为0,那么就不包含,还要判断节点值是不是相同
code:https://www.acwing.com/problem/content/submission/code_detail/120970/
acwing38.二叉树的镜像
这道题比较简单,用c++写交换指针,直接用swap就可以了,然后递归子树
https://www.acwing.com/problem/content/submission/code_detail/120980/
acwing39.对称的二叉树
要对称,p1的左子树就要和p2的右子树进行比较,递归比较就可以了,注意dfs的条件判断。
code:https://www.acwing.com/problem/content/submission/code_detail/116140/
acwing40.顺时针打印矩阵
也是一道老题,注意这种题目x轴的方向一般是行的数目
code:https://www.acwing.com/problem/content/submission/code_detail/114615/
acwing41.包含min函数的栈
我们需要提供一个栈保存最小值,当值小于等于最小栈的栈顶元素,最小栈push,当退出的元素等于最小栈的栈顶元素,pop
code:https://www.acwing.com/problem/content/submission/code_detail/120909/
acwing42.栈的压入、弹出序列
这道题可以用模拟的方式来做,因为每个值都不相同,把输入序列逐个输入,当弹出序列等于时,就弹出,看最后栈内有没有数
https://www.acwing.com/problem/content/submission/code_detail/116819/
acwing43.不分行从上往下打印二叉树
bfs的题,不讲了
code:https://www.acwing.com/problem/content/submission/code_detail/116844/
acwing44分行从上往下打印二叉树
也是bfs的题,但比上一道需要额外记录一下层次,当遍历到下一层次时就返回上一层次的
code:https://www.acwing.com/problem/content/submission/code_detail/117635/
也可以另外用一个新队列,把同一个层次的放在一个队列里,交替使用,逻辑更明确。
acwing45.之字形打印二叉树
也是bfs的题,把上面那道题中间保存的数组看情况reverse一下就可以了。
code:https://www.acwing.com/problem/content/submission/code_detail/117643/
网友评论