![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
Maestro_T
这个作者很懒,什么都没留下…
展开
-
leetcode刷题笔记(四)
第102题 二叉树的层序遍历输入:[3,9,20,null,null,15,7]输出:[ [3], [9,20], [15,7]]总体思路是用一个队列,1.第一层的结点先入队,访问第一层节点的值域,存入二维数组r[][]2.再将该结点的左右子树依次入队重复以上操作,直到遍历完全部结点。和之前的题目一样,采用循环队列,以及头尾指针front和rear。每遍历一层之后,front指向上一层的最后一个元素,rear指向当前层的最后一个元素。用lev记录层号,cur记录当前层的结原创 2020-10-16 16:00:08 · 102 阅读 · 0 评论 -
leetcode刷题笔记(三)
第101题,给定一个二叉树,检查它是否是镜像对称的。递归法:根据题目的描述,镜像对称,就是左右两边相等,也就是左子树和右子树是相当的。注意这句话,左子树和右子相等,也就是说要递归的比较左子树和右子树。我们将根节点的左子树记做 left,右子树记做 right。比较 left 是否等于 right,不等的话直接返回就可以了。如果相当,比较 left 的左节点和 right 的右节点,再比较 left 的右节点和 right 的左节点。因此递归函数应当传入两个参数,即两个相等的结点各自的左节点和右节原创 2020-07-01 18:36:26 · 129 阅读 · 0 评论 -
leetcode刷题笔记(二)
接上篇,先来看106题,此题与105题类似,是通过中序和后序遍历结果复原二叉树。还是选择递归的方法:首先看题目函数的参数:struct TreeNode* buildTree(int* inorder, int inorderSize, int* postorder, int postorderSize)中序的首结点和结点数,后序的首结点和结点数。那么第一步就是判空,通过结点数进行判断。其次,根结点的位置是后序遍历的最后一个,先对根结点进行赋值,然后找到根结点在中序遍历中的位置。对于根结点在中原创 2020-06-21 23:20:50 · 119 阅读 · 0 评论 -
leetcode刷题笔记(一)
首先要明确的是,数据结构是工具,算法是通过合适的工具解决特定问题的方法。二叉树是最容易培养框架思维的,而且大部分算法技巧,本质上都是树的遍历问题。二叉树问题基本框架:void traverse(TreeNode root) { // 前序遍历 traverse(root.left) // 中序遍历 traverse(root.right) // 后序遍...原创 2020-06-17 23:33:57 · 172 阅读 · 0 评论