树
谛听-
线上幽灵
展开
-
剑指offer---二叉树中和为某一值的路径
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x...原创 2018-03-06 08:39:41 · 140 阅读 · 0 评论 -
leetcode---path-sum---树
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example: Given the below binary tree andsum =原创 2017-10-06 16:35:59 · 203 阅读 · 0 评论 -
leetcode---binary-tree-maximum-path-sum---树
Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. For example: Given the below binary tree, 1 / \ 2 3Return6./** * Definitio原创 2017-10-06 16:11:04 · 316 阅读 · 0 评论 -
leetcode---sum-root-to-leaf-numbers---树
Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. An example is the root-to-leaf path1->2->3which represents the number123. Find the total sum of all原创 2017-10-05 12:58:02 · 320 阅读 · 0 评论 -
leetcode---recover-binary-search-tree---树
Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n ) space is pretty straight forward. Could you devise a原创 2017-10-10 19:07:39 · 291 阅读 · 0 评论 -
leetcode---binary-tree-preorder-traversal---树前序遍历
Given a binary tree, return the preorder traversal of its nodes’ values. For example: Given binary tree{1,#,2,3}, 1 \ 2 / 3return[1,2,3]. Note: Recursive solution is trivial,原创 2017-10-07 12:32:01 · 201 阅读 · 0 评论 -
leetcode---binary-tree-postorder-traversal---树后续遍历
Given a binary tree, return the postorder traversal of its nodes’ values. For example: Given binary tree{1,#,2,3}, 1 \ 2 / 3return[3,2,1]. Note: Recursive solution is trivial原创 2017-10-07 12:27:41 · 187 阅读 · 0 评论 -
leetcode---Binary Tree Inorder Traversal---中序遍历
Given a binary tree, return the inorder traversal of its nodes’ values.For example: Given binary tree [1,null,2,3], 1 \ 2 / 3 return [1,3,2]./** * Definition for a binary tre原创 2016-09-10 21:51:13 · 283 阅读 · 0 评论 -
Shortest Proper Prefix---Trie树
Query auto-completion(QAC) is widely used in many search applications. The basic idea is that when you type some string s in the search box several high-frequency queries which have s as a prefix are s原创 2015-12-27 09:57:45 · 366 阅读 · 0 评论 -
Combination Lock ---线段树
Finally, you come to the interview room. You know that a Microsoft interviewer is in the room though the door is locked. There is a combination lock on the door. There are N rotators on the lock, each原创 2016-03-16 12:31:26 · 406 阅读 · 0 评论 -
leetcode---path-sum-ii---树
Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum. For example: Given the below binary tree andsum = 22, 5 / \原创 2017-10-06 16:43:26 · 235 阅读 · 0 评论 -
leetcode---binary-tree-level-order-traversal-ii---树层次遍历
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root). For example: Given binary tree{3,9,20,#,#,15,7},原创 2017-10-13 20:59:45 · 242 阅读 · 0 评论 -
leetcode---populating-next-right-pointers-in-each-node II---树
Follow up for problem “Populating Next Right Pointers in Each Node”.What if the given tree could be any binary tree? Would your previous solution still work?Note:You may only use constant extra原创 2018-01-21 17:06:59 · 194 阅读 · 0 评论 -
剑指offer---二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。class Solution {public: bool ok(vector<int> sequence, int start, int end) { int root = sequence[end]; ...原创 2018-03-06 08:22:38 · 159 阅读 · 0 评论 -
剑指offer---重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val; * ...原创 2018-03-04 13:31:54 · 110 阅读 · 0 评论 -
剑指offer---二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 ...原创 2018-03-04 17:17:05 · 130 阅读 · 0 评论 -
剑指offer--树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL...原创 2018-03-04 17:01:58 · 120 阅读 · 0 评论 -
剑指offer---把二叉树打印成多行
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { ...原创 2018-03-11 13:04:58 · 132 阅读 · 0 评论 -
剑指offer---按之字形顺序打印二叉树
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...原创 2018-03-11 12:53:52 · 166 阅读 · 0 评论 -
剑指offer---二叉树的下一个结点
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNod...原创 2018-03-10 19:32:20 · 129 阅读 · 0 评论 -
剑指offer---二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(...原创 2018-03-08 19:51:11 · 151 阅读 · 0 评论 -
剑指offer---平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public: int depth(TreeNode* pRoot) { if(!pRoot) return 0; int left = depth(pRoot->left); int right = depth(...原创 2018-03-08 19:55:50 · 134 阅读 · 0 评论 -
leetcode---Range Sum Query - Immutable---线段树
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example: Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange(0, 5原创 2016-04-03 15:25:50 · 357 阅读 · 0 评论 -
leetcode---Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value./** * Definition f原创 2016-04-09 16:14:05 · 209 阅读 · 0 评论 -
leetcode---Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree./** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;原创 2016-09-17 18:16:26 · 333 阅读 · 0 评论 -
leetcode---Convert Sorted Array to Binary Search Tree---二叉搜索树
Given an array where elements are sorted in ascending order, convert it to a height balanced BST./** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *原创 2016-09-19 17:10:59 · 291 阅读 · 0 评论 -
leetcode---Convert Sorted List to Binary Search Tree---二叉搜索树
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNo原创 2016-09-20 20:38:23 · 615 阅读 · 0 评论 -
leetcode---Sum Root to Leaf Numbers---树的深度遍历
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find the total sum of al原创 2016-09-26 20:27:30 · 323 阅读 · 0 评论 -
leetcode---Add and Search Word - Data structure design---Trie树
Design a data structure that supports the following two operations:void addWord(word)bool search(word)search(word) can search a literal word or a regular expression string containing only letter原创 2016-11-24 22:30:38 · 362 阅读 · 0 评论 -
哈弗曼编码
#include "iostream"#include "queue"#include "vector"#include "string"using namespace std;struct huffmanTree{ char data; //表示的字符 int weight; //字符出现的频率,权值 int parent; //父亲的下标 int原创 2015-10-15 14:12:23 · 400 阅读 · 0 评论 -
最小生成树--kruskal
#include "stdio.h"#include "stdlib.h"#define MAX 10#define INF 999typedef struct Edge{ int u; //边一端的顶点 int v; //边另一端的顶点 int w; //边的权值}Edge;int root[MAX]; //定义并查集数组Edge edge[MAX];原创 2015-10-15 20:07:22 · 354 阅读 · 0 评论 -
最小生成树--prime
#include "stdio.h"#define MAX 10#define INF 999typedef struct Mgraph{ int n; //图的顶点个数 int edge[MAX][MAX]; //图中边的权值}Mgraph;int lowest[MAX]; //lowest[vi]表示当前生成树这一整体到其余顶点的权值int cloest[MAX]原创 2015-10-15 19:07:51 · 402 阅读 · 0 评论 -
leetcode---Range Sum Query - Mutable---二叉索引树
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.The update(i, val) function modifies nums by updating the element at index i to val. Example: Give原创 2017-03-12 21:29:29 · 370 阅读 · 0 评论 -
leetcode---Construct Binary Tree from Preorder and Inorder Traversal---树的构建
Given preorder and inorder traversal of a tree, construct the binary tree./** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;原创 2016-09-16 21:48:14 · 404 阅读 · 0 评论 -
leetcode---Binary Tree Zigzag Level Order Traversal---层次遍历
Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).For example: Given binary tree原创 2016-09-14 22:27:16 · 366 阅读 · 0 评论 -
leetcode---Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key. The right原创 2016-09-13 22:12:52 · 248 阅读 · 0 评论 -
leetcode--- Symmetric Tree---平衡二叉树
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric:1/ \ 2 2 / \ / \ 3 4 4 3 But the following is not:原创 2016-04-09 16:35:54 · 257 阅读 · 0 评论 -
leetcode---Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \原创 2016-04-09 17:47:26 · 272 阅读 · 0 评论 -
leetcode---Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node./** * Definition for a binary tree node.原创 2016-04-09 18:09:20 · 298 阅读 · 0 评论 -
leetcode---Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).For example: Given binary tree {3,9,20,#,#,15,7},原创 2016-04-09 18:15:37 · 253 阅读 · 0 评论