上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 59 下一页
摘要: 要求 给定一棵二叉树,返回所有表示从根节点到叶子节点路径的字符串 示例 ["1->2->5","1->3"] 思路 递归地返回左右子树到叶子节点的字符串 示例 1 class Solution { 2 public: 3 vector<string> binaryTreePaths(TreeNode 阅读全文
posted @ 2020-04-12 10:03 cxc1357 阅读(136) 评论(0) 推荐(0)
摘要: 要求 给出一个二叉树及数字sum,判断是否存在一条从根到叶子的路径,路径上的所有节点和为sum 实现 转化为寻找左右子树上和为 sum-root 的路径,到达叶子节点时递归终止 注意只有一个孩子时,根节点本身不构成一条路径,如下图sum=5的情况,终止条件是不对的 1 class Solution 阅读全文
posted @ 2020-04-11 11:43 cxc1357 阅读(115) 评论(0) 推荐(0)
摘要: 要求 翻转一棵二叉树 实现 翻转左右子树,交换左右子树的根节点 1 class Solution { 2 public: 3 TreeNode* invertTree(TreeNode* root) { 4 5 if( root == NULL ) 6 return NULL; 7 8 invert 阅读全文
posted @ 2020-04-11 11:08 cxc1357 阅读(113) 评论(0) 推荐(0)
摘要: 要求 求一棵二叉树的最高深度 思路 递归地求左右子树的最高深度 实现 1 Definition for a binary tree node. 2 struct TreeNode { 3 int val; 4 TreeNode *left; 5 TreeNode *right; 6 TreeNode 阅读全文
posted @ 2020-04-11 10:48 cxc1357 阅读(83) 评论(0) 推荐(0)
摘要: 要求 给定一个非空数组,返回前k个出现频率最高的元素 示例 [1,1,1,2,2,3], k=2 输出:[1,2] 思路 出队逻辑,普通队列是先进先出,优先队列是按最大/最小值出队 通过堆实现优先队列,C++中用 priority_queue<Type, Container, Functional> 阅读全文
posted @ 2020-04-09 09:36 cxc1357 阅读(129) 评论(0) 推荐(0)
摘要: 要求 给出一个正整数n,寻找最少的完全平方数,使他们的和为n 示例 n = 12 12 = 4 + 4 + 4 输出:3 边界 是否可能无解 思路 贪心:12=9+1+1+1,无法得到最优解 图论:从n到0,每个数字表示一个节点,如果两个数字x到y相差一个完全平方数,则连接一条边 问题转化为无权图中 阅读全文
posted @ 2020-04-09 08:17 cxc1357 阅读(118) 评论(0) 推荐(0)
摘要: 要求 对二叉树进行层序遍历 实现 返回结果为双重向量,对应树的每层元素 队列的每个元素是一个pair对,存树节点和其所在的层信息 1 Definition for a binary tree node. 2 struct TreeNode { 3 int val; 4 TreeNode *left; 阅读全文
posted @ 2020-04-07 08:10 cxc1357 阅读(126) 评论(0) 推荐(0)
摘要: 要求 给定一个链表,删除倒数第n个节点 示例 1->2->3->4->5->NULL , n=2 1->2->3->5 边界 n是从0还是从1计 n不合法,负数或者大于链表长度如何处理 思路 遍历一遍计算链表长度,再遍历一遍删除倒数第n个节点 使用两个指针同时移动,找到待删除节点的前一个节点 实现 阅读全文
posted @ 2020-04-06 09:15 cxc1357 阅读(128) 评论(0) 推荐(0)
摘要: 要求 给定链表中的一个节点,删除该节点 思路 通过改变节点的值实现 实现 1 struct ListNode { 2 int val; 3 ListNode *next; 4 ListNode(int x) : val(x), next(NULL) {} 5 }; 6 7 class Solutio 阅读全文
posted @ 2020-04-06 08:24 cxc1357 阅读(141) 评论(0) 推荐(0)
摘要: 要求 给定一个链表,对于每两个相邻的节点,交换其位置 示例 1->2->3->4->NULL 2->1->4->3->NULL 实现 1 struct ListNode { 2 int val; 3 ListNode *next; 4 ListNode(int x) : val(x), next(N 阅读全文
posted @ 2020-04-06 08:15 cxc1357 阅读(142) 评论(0) 推荐(0)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 59 下一页