摘要:
问题 请实现两个函数,分别用来序列化和反序列化二叉树。 示例 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]" 解答1:迭代(层序遍历) class Codec { public: // Encodes a tree to a sin 阅读全文
摘要:
问题 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 示例 解答1:递归 class Solution { public: Node* treeToDoublyList(Node* root) { if (!root) retu 阅读全文
摘要:
问题 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 // Definition for a Node. class Node { public: int 阅读全文
摘要:
问题 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例 解答 class Solution { public: vector<vector<int>> pathSum(TreeNode* root, int su 阅读全文
摘要:
问题 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 示例 输入: [1,6,3,2,5] 输出: false 输入: [1,3,2,6,5] 输出: true 解答1:递归 class Solut 阅读全文