- 博客(12)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 二叉树问题---判断t1树是否包含t2树全部的拓扑结构
#判断t1树是否包含t2树全部的拓扑结构 def isContain(t1, t2): def check(t1, t2): if not t2: return True if not t1 or t1.val != t2.val: return False return check(t1.lef
2017-07-31 02:52:49 794
原创 二叉树问题---寻找搜索二叉树中两个错误的节点
题目: 一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找出这两个错误的节点并返回。已知二叉树中所有节点的值都不一样,给定二叉树的头节点,返回一个长度为2的二叉树节点类型的数组errs。def getTwoErrorNode(root): errs = [None for i in range(2)] if not root:
2017-07-31 02:50:49 968
原创 二叉树问题---二叉树的按层打印和ZigZag打印
#按层打印 def printByLevel(root): if not root: return print("Print binary tree by level") queue = [] queue.append(root) last = root level = 1 print("Level " + str(level)
2017-07-31 02:17:27 674
原创 二叉树问题---找到二叉树中的最大搜索二叉子树
题目: 给定一棵二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉树,并返回这棵子树的头节点。(注意子树的概念)def biggestSubBST(root): def findBiggestSubBST(root, record): if not root: record[0] = 0 reco
2017-07-31 02:14:46 771
原创 二叉树问题---在二叉树中找到累加和为指定值的最长路径长度
题目: 给定一棵二叉树的头节点head和一个32位整数sum,二叉树节点值类型为整型,求累加和为sum的最长路径长度。路径是指从某个节点往下,每次最多选择一个孩子节点或者不选所组成的节点链。def getMaxLength(root, K): def getLengthByPreOrder(root, K, preSum, level, length, map):
2017-07-31 02:09:11 1892
原创 二叉树问题---二叉树的序列化和反序列化
说明:二叉树被记录成文件的过程叫作二叉树的序列化,通过文件内容重建原来二叉树的过程叫作二叉树的反序列化#二叉树的序列化和反序列化(先序) def serialByPre(root): if not root: return '#!' res = root.val + '!' res += serialByPre(root.left) res += se
2017-07-31 01:57:42 724
原创 二叉树问题---打印二叉树的边界节点
问题:给定一棵二叉树的头节点,按照如下两种标准分别实现二叉树边界节点的逆时针打印。 标准一:1.头节点为边界节点 2.叶节点为边界节点 3.如果节点在其所在层中的最左边或最右边,那么也是边界节点 标准二:1.头节点为边界节点 2.叶节点为边界节点 3.树左边界延伸下去的路径为边界节点 4.树右边界延伸下去的路径为边界节点 #标准一 def printEdge1(root): def get
2017-07-31 01:55:42 1383
原创 二叉树问题---较为直观的打印二叉树
class TreeNode: def __init__(self, x): self.val = x self.left = None sele.right = None def printTree(root): if not root: return print("Binary Tree: ") pr
2017-07-31 01:51:36 892 1
原创 二叉树的一些操作的代码实现
计算树的深度def getDepth(root): if not root: return 0 return 1 + max(getDepth(root.left), getDepth(root.right))计算树的带权路径长度def getWPL(root, depth=0): if not root: return 0 if no
2017-07-28 01:29:12 310
原创 二叉树问题---二叉搜索树查找、插入与删除的代码实现
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None查找def Find(root, x): if not root: print("The number {} is not found".format
2017-07-26 17:44:42 612 1
原创 八大经典排序算法基本思想及代码实现(Python、C++)
一.插入排序——简单插入排序 基本思想:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 void insertSort(vector<int> &arr) { if(arr.size() <= 1) { return; } int j; int tmp; ...
2017-07-26 12:56:16 998
原创 二叉树问题---二叉树的前中后序的递归,非递归及Morris遍历
class TreeNode: def __init__(self, x): root.val = x root.left = None root.right = None创建二叉树def create_tree(root): element = input("Enter a key:") if element == '#':
2017-07-26 11:12:05 858
C语言常见的问题集
2018-05-22
python3 range()怎么倒着取数并且得到0值
2017-07-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人