数据结构
文章平均质量分 95
yzd111
努力成为练习一坤年的初级程序员
展开
-
LeetCode 145 二叉树的后序遍历
我们在前序遍历中得到的是根左右的顺序,因此我们先将左右的顺序互换,也就是在循环中先放入左子节点,再放入右子节点,这样就会得到根右左的顺序结果,最后再将数组顺序反转就会得到按照后序遍历得到的左右根顺序。该方法与前面的前序遍历类似,仅仅需要改动一些代码顺序即可。该方法在此不作阐述,参考力扣第。,返回其节点值的 后序遍历。给你一棵二叉树的根节点。题的前序遍历思路即可。原创 2024-08-26 21:36:13 · 432 阅读 · 0 评论 -
LeetCode 94 二叉树的中序遍历
在之前的操作中我们都是遍历到那个节点就将该节点从栈中取出,因此我们对于每个节点的访问和操作是一致的。但是在这次的中序遍历中我们并非是访问到那个节点就对那个节点进行操作,而是先一直访问到最左侧的叶节点,然后对其进行操作。的节点,但是我们首先访问到的节点确是根节点,因此我们需要一个指针指向我们当前访问的节点,并且使用判断是否到了最低端然后进行操作。根据中序遍历的顺序,访问了左节点和根节点,接下来需要访问右节点,也就是使。当指针指到底部时,我们其中的栈顶元素也就是当前节点的值放到数组中。题的前序遍历思路即可。原创 2024-08-26 21:33:36 · 947 阅读 · 0 评论 -
LeetCode 144 二叉树的前序遍历
我们首先需要想到递归的实现原理,递归的过程中每一次调用将函数的局部变量,参数值和返回地址等压入栈中,在调用结束时从栈顶弹出上次递归的各项参数和值。按照前序遍历的顺序,对根节点进行操作,将其弹出栈放入数组中,同时将其子节点按照右子节点,左子节点的顺序进行入栈操作。之所以按照先右后左的顺序是因为栈是先入后出的,因此在后面出栈的时候就成了根左右的顺序了。在这个递归中需要访问每个节点一遍,因此当前的节点是参数之一,同时需要在每次递归开始时访问当前字子树的根节点,因此需要传入一个数组保存当前被访问结点的值。原创 2024-08-26 21:24:01 · 781 阅读 · 0 评论 -
LCR 150 逆波兰表达式求值
中缀表达式的计算需要两个栈的辅助,一个在中缀表达式转换成后缀表达式中用来存储运算符,另一个在转换完的后缀表达式的运算中用来存储操作数。后缀表达式计算的方式其实很简单,从左向右依次读取,遇到运算数就放入中缀表达式中,遇到操作符就将其前面的两个运算数进行计算。在最后全部读取完成的时候,我们将栈中的操作符依次弹出,最后得到的结果与上面手算的相同。最后我们可以得到上面的结果,按照左优先原则得到的结果的运算符也是按照从小到大顺序的。,我们按照左优先的原则,如果两个运算符同级,那么左侧的运算符进行优先运算。原创 2024-08-26 21:22:21 · 966 阅读 · 0 评论 -
LeetCode 203 移除链表元素
首先删除第一个节点以外的其余节点,最后判断第一个节点是否是需要删除的节点,如果是我们就返回。, 使其指向给定的第一个节点,因为第一个节点也有可能是需要删除的节点,因此我们需要创建一个虚拟的头节点来指向它。如果需要删除,我们就将该节点的下一个节点作为返回值返回给上一个节点的指向。值,假设最后要处理的头节点为要删除的节点,我们直接将它的下一个节点作为结果返回。如上图所示,我们将节点值为 5 的节点的。,接着我们开始向后移动直到头节点为空。的节点作为该链表的第一个节点进行返回。的节点,并返回 新的头节点。原创 2024-08-26 21:20:18 · 472 阅读 · 0 评论 -
LeetCode 28 找出字符串中第一个匹配项的下标
字符串匹配的kmp算法原创 2023-11-30 22:12:21 · 1098 阅读 · 1 评论