O(n)时间,O(1)空间对二叉树进行前序、中序、后序遍历。详细讲解看参考。public class Solution { public static void morrisPreorder(TreeNode root) { TreeNode cur = root; ...
分类:
其他好文 时间:
2014-09-09 22:58:39
阅读次数:
425
记录一些二叉树的基础算法二叉树节点结构:typedef struct TreeNode{ int val; struct TreeNode *left; struct TreeNode *right; }TreeNode,*Node;1.遍历前、中、后序递归遍历...
分类:
其他好文 时间:
2014-09-09 20:00:09
阅读次数:
129
1 #ifndef _Tree_H 2 3 struct TreeNode; 4 typedef struct TreeNode *Position; 5 typedef struct TreeNode *SearchTree; 6 7 SearchTree MakeEmpty(...
分类:
其他好文 时间:
2014-09-09 15:07:58
阅读次数:
202
我觉着写得比看到的答案更清晰~
class Solution {
public:
TreeNode *ltob(ListNode *head, ListNode *end) {
if(head == end) {
TreeNode * node = new TreeNode(head->val);
return node;...
分类:
其他好文 时间:
2014-09-09 12:56:58
阅读次数:
166
给定两个二叉树T1,T2判断T1是否是T2的子树
首先在T2中查找T1的根节点,如果找不到,
则T1不是T2的子树,如果能找到,我们可以
遍历T1,检查T1的每个结点是否对应的存在T2
中。
代码:
struct TreeNode
{
int data;
TreeNode* leftChild;
TreeNode* rightChild;
};
bool isExited(co...
分类:
其他好文 时间:
2014-09-09 12:52:58
阅读次数:
171
用两个队列实现,交叉使用,达到判断层的目的 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right...
分类:
其他好文 时间:
2014-09-06 23:47:44
阅读次数:
261
public class Solution { public List preorderTraversal(TreeNode root) { List result = new ArrayList(); Stack nodeStack = new Stack();...
分类:
其他好文 时间:
2014-09-05 22:17:42
阅读次数:
246
public class Solution { public List postorderTraversal(TreeNode root) { List result = new ArrayList(); Stack nodeStack = new Stack();...
分类:
其他好文 时间:
2014-09-05 02:08:10
阅读次数:
166
bool helper(TreeNode *pA, TreeNode *pB) { if (!pA && !pB) return true; if (!pA || !pB) return false; // only one has node in a tree and...
分类:
其他好文 时间:
2014-09-04 23:36:10
阅读次数:
308
一开始的思路是:中序遍历+判断遍历后的数组,时间空间都不是最优果然超时了 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * ...
分类:
其他好文 时间:
2014-09-04 23:35:50
阅读次数:
393