题目描述 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 我的题解:递归 前序拿到根节点,在中序中找到该节点左边的元素和右边的元素,递归下去. 看了官方的递归解法,思路差不多,更简洁一些: java class Solution { public TreeNode ...
分类:
其他好文 时间:
2020-05-23 09:24:45
阅读次数:
47
方法一:递归 public TreeNode buildTree(int[] preorder, int[] inorder) { return buildTreeHelper(preorder, 0, preorder.length, inorder, 0, inorder.length); } ...
分类:
其他好文 时间:
2020-05-23 00:43:34
阅读次数:
59
class Solution { public: void preorderTraversal(TreeNode* root) { //1.先逐个访问左路结点,并将其入栈 //2.再访问栈顶元素的右子树 stack<TreeNode*> helper; TreeNode* cur=root; //只 ...
分类:
其他好文 时间:
2020-05-22 00:09:07
阅读次数:
59
数据结构与算法实验报告 第六次实验 姓名:孙瑞霜 一、实验目的 1、熟练掌握学习的每种结构及其相应算法; 2、理论联系实际,会对现实问题建模并设计相应算法。 3、优化算法,使得算法效率适当提高 二、实验要求: 1. 认真阅读和掌握教材上和本实验相关的内容和算法; 2. 上机将各种相关算法实现; 3. ...
分类:
其他好文 时间:
2020-05-21 21:15:46
阅读次数:
81
题目: 相同的树:给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 思路: 递归秒解,思路也简单。 程序: # Definition for a binary tree node. # class TreeNode: # def _ ...
分类:
编程语言 时间:
2020-05-18 21:01:41
阅读次数:
86
1 //结构体定义如下 2 struct TreeNode 3 { 4 char val; 5 TreeNode* left; 6 TreeNode* right; 7 TreeNode(char x) : val(x), left(NULL), right(NULL) {} 8 }; 1. 前序遍 ...
分类:
其他好文 时间:
2020-05-17 19:13:57
阅读次数:
64
题目描述 面试题32 - III. 从上到下打印二叉树 III 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 ...
分类:
其他好文 时间:
2020-05-17 17:57:01
阅读次数:
70
题目描述: 提交: class Solution: def goodNodes(self, root: TreeNode) -> int: def helper(m,node): r,left,right = 0,0,0 if node.val >= m: r = 1 if node.left: l ...
分类:
其他好文 时间:
2020-05-17 13:37:14
阅读次数:
65
问题: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 分析:二叉搜索树的中序遍历将得到升序结果。 (1)使用List结构记录中序遍历结果. (2)将list中的元素构建为双向链表。 code: public TreeNode Co ...
分类:
其他好文 时间:
2020-05-16 15:10:55
阅读次数:
62
题目: 二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 思路: 使用层序遍历的思路,但是没有用到栈。 程序: # Definition for a binary tree node. # class T ...
分类:
编程语言 时间:
2020-05-16 10:35:55
阅读次数:
103