随笔分类 -  [算法/数据结构] 树

摘要:<> 题目描述 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 阅读全文
posted @ 2020-04-16 13:41 remly 阅读(190) 评论(0) 推荐(0)
摘要:<> 题目描述 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不 阅读全文
posted @ 2020-04-16 10:39 remly 阅读(265) 评论(0) 推荐(0)
摘要:<分治> 题目描述 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 我的 阅读全文
posted @ 2020-04-15 23:32 remly 阅读(237) 评论(0) 推荐(0)
摘要:<递归> <return写在最后的理解> <逆向思维> 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 阅读全文
posted @ 2020-04-15 16:08 remly 阅读(96) 评论(0) 推荐(0)
摘要:<搜索树结点> <获取路径> 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如 阅读全文
posted @ 2020-04-15 14:24 remly 阅读(167) 评论(0) 推荐(0)
摘要:<层序遍历的递归解法> <深搜转变为维护二维数组> 题目描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [ 阅读全文
posted @ 2020-04-13 14:24 remly 阅读(275) 评论(0) 推荐(0)
摘要:问题描述 定义一个函数 findnode(root,val) 要求返回在树root中结点值为val的结点。 解决方案 参考:https://www.cnblogs.com/neuzk/p/9486730.html 阅读全文
posted @ 2020-04-04 12:08 remly 阅读(278) 评论(0) 推荐(0)
摘要:<两棵树的操作技巧><空节点技巧> 题目 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 阅读全文
posted @ 2019-08-18 23:22 remly 阅读(164) 评论(0) 推荐(0)
摘要:<递归解法> <未能整理出自己的思路> 题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 阅读全文
posted @ 2019-02-19 14:55 remly 阅读(145) 评论(0) 推荐(0)
摘要:【题目】 给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 【解析】 阅读全文
posted @ 2018-12-18 14:56 remly 阅读(237) 评论(0) 推荐(0)
摘要:<递归解法><深搜><DFS> 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 阅读全文
posted @ 2018-12-06 18:05 remly 阅读(273) 评论(0) 推荐(0)
摘要:构造二叉树并加入节点 class BiNode(): def __init__(self,value=None,left=None,right=None): self.value=value self.left=left self.right=right class BiTree(): def __ 阅读全文
posted @ 2018-12-04 19:32 remly 阅读(594) 评论(1) 推荐(0)