上一页 1 2 3 4 5 6 7 8 9 10 ··· 31 下一页
摘要: ☆☆☆☆思路:回溯算法. 回溯算法事实上就是在一个树形问题上做DFS。因此,需要先将原问题转化为树形问题 每一个节点可以选择截取的方法有三种:截1位、截2位、截3位。因此每一个结点可以生长出的分支最多只有 3 条分支; 由于 ip 段最多就 4 个段,因此这棵三叉树最多 4 层,这个条件作为递归终止 阅读全文
posted @ 2020-12-26 20:21 不学无墅_NKer 阅读(77) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆思路:递归。本题是典型的树形问题 使用StringBuilder要比拼接String效率高,但注意需要回溯操作。 class Solution { List<String> res; // 作为类的一个成员变量 String[] map = new String[]{ "", "", "abc 阅读全文
posted @ 2020-12-26 16:55 不学无墅_NKer 阅读(79) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆思路:二叉搜索树的删除操作是最难的。。。 class Solution { public TreeNode deleteNode(TreeNode root, int key) { /** * 知识点: * 1. BST的递归模板 * 2. BST删除某个节点,可以将其替换为左子树的最右节点 阅读全文
posted @ 2020-12-26 11:54 不学无墅_NKer 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 思路:中序遍历 递归 / 非递归 class Solution { int count = 0; int res = 0; public int kthSmallest(TreeNode root, int k) { inOrder(root, k); return res; } private v 阅读全文
posted @ 2020-12-26 09:59 不学无墅_NKer 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 思路:和108题类似,链表需要通过双指针寻找中间节点。 class Solution { public TreeNode sortedListToBST(ListNode head) { if (head == null) return null; if (head.next == null) re 阅读全文
posted @ 2020-12-25 21:27 不学无墅_NKer 阅读(48) 评论(0) 推荐(0) 编辑
摘要: ☆☆思路:BST的中序遍历时升序的,因此本题等同于根据中序遍历的序列恢复二叉搜索树。 可以选择中间数字作为二叉搜索树的根节点,这样分给左右子树的数字个数相同或只相差 1,可以使得树保持平衡。 class Solution { public TreeNode sortedArrayToBST(int[ 阅读全文
posted @ 2020-12-25 21:04 不学无墅_NKer 阅读(52) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆思路:经典的LCA问题 class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (root == null) return null; if (p == 阅读全文
posted @ 2020-12-25 20:43 不学无墅_NKer 阅读(49) 评论(0) 推荐(0) 编辑
摘要: ☆☆思路:中序遍历时,判断当前节点是否大于中序遍历的前一个节点,如果大于,满足BST,继续遍历;否则返回false。 技巧点:保存前一个节点 + 中序遍历 class Solution { TreeNode pre = null; public boolean isValidBST(TreeNode 阅读全文
posted @ 2020-12-25 17:30 不学无墅_NKer 阅读(63) 评论(0) 推荐(0) 编辑
摘要: class Solution { int min = Integer.MAX_VALUE; TreeNode pre = null; public int getMinimumDifference(TreeNode root) { inOrder(root); return min; } priva 阅读全文
posted @ 2020-12-25 17:02 不学无墅_NKer 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 二分搜索树: 1. 每个节点的键值大于左孩子; 2. 每个节点的键值小于右孩子; 3. 以左右孩子为根的子树仍为二分搜索树。 ☆☆思路:中序遍历,计算相邻数的差值 class Solution { int min = Integer.MAX_VALUE; TreeNode pre = null; / 阅读全文
posted @ 2020-12-25 16:57 不学无墅_NKer 阅读(62) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 31 下一页