摘要:
题目: 解法: 基本思路是每次访问到叶子节点的时候,将已有的路径进行输出,可以用一个栈来存储,每次回溯的时候,节点出栈,然后访问至叶子节点时,对栈结构进行遍历即可,这里采用vector进行操作,其优势在于,可以直接采用下标进行访问! 1 /** 2 * Definition for a binary 阅读全文
posted @ 2020-05-02 16:06
梦醒潇湘
阅读(235)
评论(0)
推荐(0)
摘要:
题目: 解答: (递归) O(n) 当我们用递归去做这个题时不要被题目误导,应该要明确一点:这个函数的功能有三个:给定两个节点 p和 q (1)如果 p 和 q 都存在,则返回它们的公共祖先; (2)如果只存在一个,则返回存在的一个; (3)如果 p 和 q 都不存在,则返回NULL 本题说给定的两 阅读全文
posted @ 2020-05-02 15:48
梦醒潇湘
阅读(140)
评论(0)
推荐(0)
摘要:
题目: 解决: 方法一:递归 思路: 节点 p,q 的最近公共祖先(LCA)是距离这两个节点最近的公共祖先节点。在这里 最近 考虑的是节点的深度。下面这张图能帮助你更好的理解 最近 这个词的含义。 笔记:p 和 q其中的一个在 LCA 节点的左子树上,另一个在 LCA 节点的右子树上。 也有可能是下 阅读全文
posted @ 2020-05-02 15:42
梦醒潇湘
阅读(157)
评论(0)
推荐(0)
摘要:
题目: 解答: 通过构造 BST 的中序遍历序列,则第 k-1 个元素就是第 k 小的元素。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * 阅读全文
posted @ 2020-05-02 15:32
梦醒潇湘
阅读(181)
评论(0)
推荐(0)
摘要:
题目: 解答: 反转一颗空树结果还是一颗空树。对于一颗根为 rr,左子树为 \mbox{right}, 右子树为 \mbox{left} 的树来说,它的反转树是一颗根为 rr,左子树为{right} 的反转树,右子树为 {left} 的反转树的树。 1 /** 2 * Definition for 阅读全文
posted @ 2020-05-02 15:26
梦醒潇湘
阅读(183)
评论(0)
推荐(0)
摘要:
题目: 解答: 最简单的解决方法就是用递归一个一个的计算节点。 时间复杂度为O(N); 空间复杂度为O(d)=O(logN); 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * Tr 阅读全文
posted @ 2020-05-02 15:22
梦醒潇湘
阅读(156)
评论(0)
推荐(0)
摘要:
题目: 解答: 利用广度优先搜索进行层次遍历,记录下每层的最后一个元素。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode 阅读全文
posted @ 2020-05-02 15:18
梦醒潇湘
阅读(219)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 15:08
梦醒潇湘
阅读(166)
评论(0)
推荐(0)
摘要:
题目: 解法: 方法一:递归实现 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode 阅读全文
posted @ 2020-05-02 15:03
梦醒潇湘
阅读(144)
评论(0)
推荐(0)
摘要:
题目: 解法:方法一:递归方法 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode( 阅读全文
posted @ 2020-05-02 14:30
梦醒潇湘
阅读(157)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 13:16
梦醒潇湘
阅读(138)
评论(0)
推荐(0)
摘要:
题目: 解答: /* // Definition for a Node. class Node { public: int val; Node* left; Node* right; Node* next; Node() : val(0), left(NULL), right(NULL), next 阅读全文
posted @ 2020-05-02 13:11
梦醒潇湘
阅读(151)
评论(0)
推荐(0)
摘要:
题目: 解法: 1 /* 2 // Definition for a Node. 3 class Node { 4 public: 5 int val; 6 Node* left; 7 Node* right; 8 Node* next; 9 10 Node() : val(0), left(NUL 阅读全文
posted @ 2020-05-02 13:07
梦醒潇湘
阅读(134)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode() : val( 阅读全文
posted @ 2020-05-02 13:04
梦醒潇湘
阅读(156)
评论(0)
推荐(0)
摘要:
题目: 解法: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 13:01
梦醒潇湘
阅读(150)
评论(0)
推荐(0)
摘要:
题目: 解答: 声明一个变量记录已经经过的节点的值之和,每经过一个节点就加上这个节点的值,在叶子节点判断变量值是否为目标值。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * Tre 阅读全文
posted @ 2020-05-02 12:59
梦醒潇湘
阅读(126)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 12:52
梦醒潇湘
阅读(155)
评论(0)
推荐(0)
摘要:
题目: 解答: 平衡二叉树要求左子树和右子树的高度相差为1,且左右子树都是平衡二叉树,显然要计算二叉树的高度的函数。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNod 阅读全文
posted @ 2020-05-02 12:46
梦醒潇湘
阅读(1189)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 12:40
梦醒潇湘
阅读(253)
评论(0)
推荐(0)
摘要:
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : 阅读全文
posted @ 2020-05-02 12:35
梦醒潇湘
阅读(485)
评论(0)
推荐(0)