二叉树 二叉树的性质 每个节点最多都有两个子节点的树称为二叉树。其性质与定义有: 第$i$层最多有$2^{i 1}$个节点 满二叉树:若每一层的节点数都是满的(都为$2^{i 1}$),则为满二叉树 完全二叉树:一棵满二叉树只在最后一层有缺失,则称为完全二叉树 而对于完全二叉树,它的子节点与父结点还 ...
分类:
其他好文 时间:
2020-04-23 15:06:58
阅读次数:
51
根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, , , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: ["2", "1", "+", ...
分类:
其他好文 时间:
2020-04-23 00:17:02
阅读次数:
114
leetcode "199. 二叉树的右视图" 因为某些比赛导致三天没写编程题,回来之后发现自己好像啥都不会了,写每一题都要花费好长时间/_ \ 牢骚结束:二叉树的遍历一般用dfs或者bfs,dfs一般用于前中后序遍历,bfs一般用于层序遍历 方法一:这一题最直观的解法就是得到二叉树的层序遍历,然后 ...
分类:
其他好文 时间:
2020-04-22 16:17:55
阅读次数:
61
1.节点数据结构 public class Node { public int value; public Node left; public Node right; public Node(int data){ this.value = value; } } 2.递归 public class R ...
分类:
编程语言 时间:
2020-04-22 13:39:29
阅读次数:
66
算法 第八章 Morris遍历/搜索二叉树/跳表等(完结) Morris遍历 + Morris遍历实现二叉树的先中后序遍历,时间复杂度O(n), 额外空间复杂度O(1) + 如果使用递归/非递归版本都是使用栈来完成二叉树遍历,因为只有指向子指针没有指向父指针,有额外的栈空间。 + Morris遍历实 ...
分类:
编程语言 时间:
2020-04-21 18:52:39
阅读次数:
92
参考网址: https://visualgo.net/zh/bst?slide=1 树 二叉树的 前序遍历 中序遍历 后序遍历 n叉树的 前序遍历 后序遍历 n叉树的层序遍历 // 二叉树的 前序遍历class Solution { public List<Integer> preorderTrav ...
分类:
其他好文 时间:
2020-04-20 17:35:47
阅读次数:
86
链表 1. 找一个链表中倒数第k个结点(假设原链表肯定有多余k个结点) 假设整个链表有x个结点,用两个指针即可找到倒数第k个,示意图如下: 先用一个指针a遍历到第k个 ;然后a、b指针同时开始往后,直到指针a结束,则b在这段时间里走过了x-k个结点,也就是倒数第k个结点 typedef struct ...
分类:
其他好文 时间:
2020-04-19 17:41:42
阅读次数:
81
树是一种一对多的数据结构,之前的数组,栈这些都是一对一的数据结构。 树是n个结点的有限集。n=0称空树。在任意一棵非空树中:有且仅有一个根(root)结点;n>1时,其余结点可分为m个互不相交的的有限集,其中每个集合又是一棵树,称为根的子树。 前面三个都是树,最后一个不是树,因为最后一个的数据相交了 ...
分类:
其他好文 时间:
2020-04-19 15:09:10
阅读次数:
73
1 class Node(object): 2 '''定义一个结点,有左孩子和右孩子''' 3 def __init__(self,data): 4 # 结点数据 5 self.data = data 6 # 左、右 孩子指向为空 7 self.lchild = None 8 self.rchild ...
分类:
其他好文 时间:
2020-04-18 14:11:29
阅读次数:
50
求二叉树的先序遍历 Description 已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历 Input 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。 ...
分类:
其他好文 时间:
2020-04-17 20:29:25
阅读次数:
90