摘要:
"二叉树的层次遍历" 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20, , ,15,7} : 返回他的分层遍历结果: [ & 160;& 160;& 160;& 160;[3], & 160;& 160;& 160;& 160;[9,20], & 16 阅读全文
摘要:
"二叉树的后序遍历" 给出一棵二叉树,返回其节点值的后序遍历。 样例 给出一棵二叉树 {1, ,2,3}, 返回 [3,2,1] 挑战 你能使用非递归实现么? 标签 递归 二叉树 二叉树遍历 code / Definition of TreeNode: class TreeNode { public 阅读全文
摘要:
"将二叉查找树转换成双链表" 将一个二叉查找树按照中序遍历转换成双向链表。 样例 给定一个二叉查找树: 返回 12345。 标签 链表 code / Definition of TreeNode: class TreeNode { public: int val; TreeNode left, ri 阅读全文
摘要:
"螺旋矩阵" 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。 样例 给定如下矩阵: [ & 160;& 160;& 160;& 160;[ 1, 2, 3 ], & 160;& 160;& 160;& 160;[ 4, 5, 6 ], & 160 阅读全文
摘要:
"子树" 有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完 阅读全文
摘要:
"删除链表中倒数第n个节点" 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项 链表中的节点个数大于等于n 样例 给出链表 1 2 3 4 5 null 和 n = 2. 删除倒数第二个节点之后,这个链表将变成 1 2 3 5 null . 挑战 O(n)时间复杂度 标签 链表 阅读全文
摘要:
"合并两个排序链表" 将两个排序链表合并为一个新的排序链表 样例 给出 1 3 8 11 15 null,2 null, 返回 1 2 3 8 11 15 null。 标签 领英 链表 code / Definition of ListNode class ListNode { public: in 阅读全文
摘要:
"用递归打印数字" 用递归的方法找到从1到最大的N位整数。 注意事项 用下面这种方式去递归其实很容易: 但是这种方式会耗费很多的递归空间,导致堆栈溢出。你能够用其他的方式来递归使得递归的深度最多只有 N 层么? 样例 给出 N = 1, 返回[1,2,3,4,5,6,7,8,9]. 给出 N = 2 阅读全文
摘要:
"快速幂" 计算an % b,其中a,b和n都是32位的整数。 样例 例如 231 % 3 = 2 例如 1001000 % 1000 = 0 挑战 O(logn) 标签 分治法 code class Solution { public: / @param a, b, n: 32bit intege 阅读全文
摘要:
"奇偶分割数组" 分割一个整数数组,使得奇数在前偶数在后。 样例 给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。 挑战 在原数组中完成,不使用额外空间。 标签 数组 两根指针 code class Solution { public: / @param nums: a vector 阅读全文