首页 > 其他分享 >关于二叉树递归代码的粗鄙理解

关于二叉树递归代码的粗鄙理解

时间:2024-01-16 18:44:20浏览次数:23  
标签:遍历 递归 代码 二叉树 节点 粗鄙

整体来看,二叉树的递归代码,可以分为终止条件,单层递归逻辑。

单层递归逻辑就是所谓的根左右那三种,选哪一种也是有讲究的,
如果不需要对根节点进行处理,那三种都可以。
如果题目侧重与由子节点推到父节点,就采用后序遍历。
如果题目侧重与由父节点推到子节点,就采用前序遍历。

终止条件怎么写?
就当作只有三个节点的树进行if条件的判断,这时候就不要管后面的内容,只需把这最简单的情况处理好即可。

标签:遍历,递归,代码,二叉树,节点,粗鄙
From: https://www.cnblogs.com/yun-che/p/17968309

相关文章

  • 代码随想录 day20 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
    最大二叉树前序遍历递归效率不高因为每次都要新开数组给左右子树可以在同一个数组上做这个事情合并二叉树一开始不知道怎么同时遍历两棵树其实只要同时传入两棵树的节点就可以了这里判断两棵树谁空就另外一个作为构造树全为空那就会构造空节点二叉搜索树中的搜索......
  • 1.8 - 高阶函数与递归函数
    1.8.1高阶函数高阶函数:其形参或返回值为函数。#filter(function,iterable)#将可迭代对象中的元素依次作为实参传递给指定的形参函数function调用,返回新的可迭代对象tup=(1,2,0,False,True,-1)obj=filter(lambdax:x-1,tup)print(list(obj))#[2,......
  • 非递归形式遍历二叉树
    最简单的就是前序遍历,每次将栈顶元素插入数组中。但要注意由于栈的性质,先push右节点再push左节点。点击查看代码classSolution{public:vector<int>preorderTraversal(TreeNode*root){vector<int>v;stack<TreeNode*>stk;if(root!=NULL){stk.push(root);}while(!......
  • C++U3-第09课-递归函数的应用
    学习目标 斐波那契数列例题  我们需要求出斐波那契第n项的值是多少【思路分析】我们用递归的方式去求解,当第一项和第二项返回1,否则返回前两项的和当前为第一项和第二项返回1当前不为第一项和第二项返回前两项的和定义n并把n输入,带入到递归求解【参考代......
  • 一套模板搞定二叉树算法题--二叉树算法讲解002
    1、二叉树的递归递归:2、二叉树遍历之DFS深度优先遍历2.1、遍历的概念每个节点都要恰好被访问一次,本质上是二叉树的线性化。一个树形的结构,线性化为一个数组之类的"串"的结构。2.2、DFS深度优先遍历示例二叉树原型图:2.2.1、前序遍历前序遍历执行顺序:根节点--对左子......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉树的直径
    题目给你一棵二叉树的根节点,返回该树的直径。二叉树的直径是指树中任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点root。两节点之间路径的长度由它们之间边数表示。 示例1:输入:root=[1,2,3,4,5]输出:3解释:3,取路径[4,2,1,3]或[5,2,1,......
  • 代码随想录 day18 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树
    找树左下角的值最简单就是想到层序遍历之后取第一个位置元素就是了递归的话需要先判断哪里最深的节点至于最左保持中左右的遍历顺序第一次得到最大深度处就是最左的路径总和有点像查找子树路径所以递归回溯是比较好的选择在求路径的适合,targetSum-node->val是否为......
  • 代码随想录 day17 平衡二叉树 二叉树的所有路径 左叶子之和
    平衡二叉树之前一直写迭代代码没有怎么写递归正好这题不是很好写迭代练习一下递归这题递归逻辑相对简单左右子树高度差判断是不是大于一可以直接返回结果不大于一就高度max(l,r)+1二叉树的所有路径关键要点这题适合先序遍历回溯过程和递归过程是一起写的进来几次......
  • 递归实现二分
    publicclassBinarySearch{privateint[]array;/***递归实现二分查找*@paramtarget*@return*/publicintsearchRecursion(inttarget){if(array!=null){returnsearchRecursion(target,0,array.lengt......
  • Java递归函数计算递归次数出错
    背景:构造组织架构树时,使用了递归填充子节点,为防止环状的错误数据导致递归无法结束,记录递归的次数,超过一定数量后终止递归问题:用户记录递归次数的变量在节点跳转的时候被重新赋值,无法正确记录 publicDepartgenDepartTreeFromRoot()throwsException{Departroot=De......