
数据结构/算法
做算法题的一些笔记、总结之类的
辣辣写代码_nanaProgrammer
UESTC-software engineering,
NUS-electrical engineering(in progress),
记录学习过程中的点点滴滴...
展开
-
【Data structure&Algorithm】二叉树相关题目
二叉树相关题目236. 二叉树的最近公共祖先236. 二叉树的最近公共祖先题目二叉树的递归框架:void traverse(TreeNode root) { // 前序遍历 traverse(root.left) // 中序遍历 traverse(root.right) // 后序遍历}套入该题目给的函数: public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNo原创 2020-12-23 16:27:23 · 398 阅读 · 0 评论 -
【Data structure & Algorithm】做题笔记-二叉树
二叉树方法论226-翻转二叉树116-填充每个节点的下一个右侧节点指针方法论二叉树的遍历方式是递归,写递归算法的关键是要明确函数的「定义」是什么,然后相信这个定义,利用这个定义推导最终结果,绝不要跳入递归的细节。换句话说,先搞清楚当前 root 节点该做什么,然后根据函数定义递归调用子节点,递归调用会让孩子节点做相同的事情。把题目的要求细化成每个节点(或每几个节点)需要做的事情。如,计算一棵二叉树共有几个节点:// 定义:count(root) 返回以 root 为根的树有多少节点int coun原创 2020-12-18 16:36:32 · 469 阅读 · 0 评论 -
【数据结构与算法】二叉树的前序、中序、后序遍历
二叉树的前序、中序、后序遍历概念注意人工得出遍历顺序前序(根-左子树-右子树)中序(左子树-根-右子树)后序(左子树-右子树-根)总结编程实现遍历(递归)概念前序:考查到一个节点后,即刻输出该节点的值(访问该节点),并继续遍历其左右子树。(根-左子树-右子树)。中序:考查到一个节点后,将其暂存,遍历完左子树后,再输出该节点的值(访问该节点),然后遍历右子树。(左子树-根-右子树)后序:考查到一个节点后,将其暂存,遍历完左右子树后,再输出该节点的值(访问该节点)。(左子树-右子树-根)注意3原创 2020-10-06 12:45:24 · 708 阅读 · 0 评论 -
根据前序遍历序列、中序遍历序列,重建二叉树
根据前序遍历序列、中序遍历序列,重建二叉树题目知识储备总体思路几点思考代码运行结果画图辅助理解:在数组里划分左子树部分、右子树部分题目来自剑指Offer的第7题。知识储备要完成这道题,对于二叉树的前序遍历和后序遍历一定要理解到位,下方链接是我之前写的文章,请在做该题目之前阅读完以下文章。二叉树前序、中序、后序遍历总体思路二叉树的前序遍历顺序是:根节点、左子树、右子树,每个子树的遍历顺序同样满足前序遍历顺序。二叉树的中序遍历顺序是:左子树、根节点、右子树,每个子树的遍历顺序同样满足中序遍历顺原创 2020-10-06 17:14:58 · 1403 阅读 · 0 评论