![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tree
Chen_chish
这个作者很懒,什么都没留下…
展开
-
[Leetcode]Sum Root to Leaf Numbers
方法一:回溯法1、解向量可以不用一个真的“向量”来存储,而可以用一个数来存放,这个数由路径上节点的值组成2、每当一个解找到(到达叶子节点),累加和/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;原创 2013-06-19 15:39:20 · 393 阅读 · 0 评论 -
[Leetcode]Convert Sorted Array to Binary Search Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-28 11:28:35 · 347 阅读 · 0 评论 -
[Leetcode]Minimum Depth of Binary Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-28 10:48:34 · 387 阅读 · 0 评论 -
[Leetcode]Path Sum II
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-28 10:39:01 · 372 阅读 · 0 评论 -
[Leetcode]Convert Sorted List to Binary Search Tree
思路:从链表来建树关键的在于找到中间节点,并且自底向上的来建立。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *//** *原创 2013-06-28 11:22:57 · 335 阅读 · 0 评论 -
[Leetcode]Flatten Binary Tree to Linked List
思路:递归/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2013-06-28 10:03:06 · 394 阅读 · 0 评论 -
[Leetcode]Same Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 09:32:44 · 299 阅读 · 0 评论 -
[Leetcode]Symmetric Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 09:46:47 · 339 阅读 · 0 评论 -
[Leetcode]Binary Tree Level Order Traversal
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 10:12:16 · 344 阅读 · 0 评论 -
[Leetcode]Binary Tree Zigzag Level Order Traversal
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 10:24:12 · 291 阅读 · 0 评论 -
[Leetcode]Binary Tree Level Order Traversal II
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 10:28:56 · 403 阅读 · 0 评论 -
[Leetcode]Validate Binary Search Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-29 14:37:19 · 360 阅读 · 0 评论 -
[Leetcode]Balanced Binary Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-28 10:59:09 · 373 阅读 · 0 评论 -
[Leetcode]Path Sum
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-06-28 10:41:35 · 357 阅读 · 0 评论 -
[Leetcode]Binary Tree Maximum Path Sum
思路:题目最优解路径有两个端点(可能是同一个点),这两个端点有LCA(最近公共祖先),且该其也在该路径上。对于该节点来说,其左子树产生的以左子树为一端的最长路径和其右子树产生的以右子树为一端的最长路径是该最优解的组成(加上该节点的就是最优路径)。那么我们只要递归的计算所有子树的最长路径(以根为一个端点)即可。/** * Definition for binary tree * stru原创 2013-06-20 14:34:35 · 435 阅读 · 0 评论 -
[Leetcode]Recover Binary Search Tree
思路:如果我们可以用额外的数组得到中序遍历的结果,那么我么可以相对容易的解决这个问题。不用额外的空间,可以用O(N)的时间通过中序遍历整棵树来解决。对于每次访问到一颗子树,我们需要然它知道它的前一个节点。方法一:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *原创 2013-06-24 21:57:12 · 401 阅读 · 0 评论 -
[geeks]Construct BST from given preorder traversal——iterative solution
步骤:1、建立一个空栈2、使preorder数组中的第一个元素为root,并把root推入栈中3、重复下面步骤直到遍历完preorder数组如果当前preorder数组中的元素大于栈中节点的值,pop栈顶元素,直到栈为空,或者栈顶节点的值大于preorder数组中的元素。令最后被pop出来的节点的右子树为当前元素,并将其push入栈。如果当前元素小于栈顶节点的值,那么令栈顶节点原创 2013-06-25 11:26:02 · 482 阅读 · 0 评论 -
[剑指offer]重建二叉树
思路:递归建树#include #include #include #include #include using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}}原创 2013-06-25 16:35:07 · 344 阅读 · 0 评论 -
[geeks]Two of the nodes of a Binary Search Tree (BST) are swapped. Fix (or correct) the BST
思路:同leetcode中Recover Binary Search Tree原创 2013-06-24 22:03:14 · 563 阅读 · 0 评论 -
[geeks]Construct Full Binary Tree from given preorder and postorder traversals
思路:根据先序和后序遍历数据,递归的构造整棵树struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: TreeNode *buildTree(ve原创 2013-06-25 09:30:39 · 504 阅读 · 0 评论 -
[geeks]Construct BST from given preorder traversal
思路一:preorder数组的第一个元素为根,然后从左到右开始找第一个大于根的元素,递归的构造左右子树,时间复杂度O(n)。思路二:一边遍历preorder数组一边构造BSTstruct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N原创 2013-06-25 10:41:29 · 460 阅读 · 0 评论 -
[Leetcode]Populating Next Right Pointers in Each Node
思路:逐层处理/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(int x) : val(x), left(NULL), right(NULL), ne原创 2013-06-26 14:12:37 · 299 阅读 · 0 评论 -
[Leetcode]Populating Next Right Pointers in Each Node II
思路:同Populating Next Right Pointers in Each Node/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(原创 2013-06-26 14:15:26 · 366 阅读 · 0 评论 -
[geeks]Floor and Ceil from a BST
There are numerous applications we need to find floor (ceil) value of a key in a binary search tree or sorted array. For example, consider designing memory management system in which free nodes are ar转载 2013-06-26 15:15:57 · 1039 阅读 · 0 评论 -
[geeks]Linked complete binary tree & its creation
思路:层序遍历往往和优先队列结合在一起一、初始化队列,用新节点初始化root,将root enqueue()二、重复下列步骤,知道所有的节点插入 1、得到队首节点(不出队) a) 如果该节点没有左子节点,该节点的左子节点为新节点 b) 否则 如果 该节点没有右子节点,该节点的右子节点为新节点 2、如果队首节点左右儿子节点都存在,则de原创 2013-06-26 16:53:51 · 416 阅读 · 0 评论 -
[Leetcode]Binary Tree Inorder Traversal without recursion
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-07-04 10:30:45 · 443 阅读 · 0 评论