leetcode
Ace-huang
饭可以一日不吃,觉可以一日不睡,代码不可以一日不敲。
展开
-
二叉树的非递归遍历和递归遍历
文章目录前言前序遍历递归非递归中序遍历递归非递归后序遍历递归非递归层序遍历 前言 二叉树的遍历有前序遍历、中序遍历、后续遍历、层序遍历。然后我们分别实现一下各种遍历的递归与非递归的方式,树节点定义如下: class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(...原创 2019-12-17 20:55:34 · 1032 阅读 · 4 评论 -
验证二叉搜索树(leetcode 98)
文章目录题目解析解法一解法二 题目 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 示例 2: 解析 做这个题的时候,我的第一想法就是说验证左节点小于根,右节点大于根不就行了。但是这种想法是错的,比如下图的这种情况: 很明显...原创 2019-12-17 11:06:01 · 285 阅读 · 0 评论 -
有序链表转换二叉搜索树
文章目录题目解析解法一解法一代码解法二解法二代码解法三解法三代码插件 题目 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度...原创 2019-12-13 13:30:01 · 508 阅读 · 0 评论 -
分隔链表
文章目录题目解析拓展 题目 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5 解析 这个题是链表分组的中等难度题,其实没...原创 2019-12-12 14:54:58 · 178 阅读 · 1 评论 -
K 个一组翻转链表(leetcode24,25)题解
题目25,24: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->5 当 k = 3 时,应当返回: 3-&...原创 2019-12-11 20:36:47 · 267 阅读 · 0 评论 -
删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? leetcode这道链表删除节点题中等难度,这个题挺好解的,两种解法: 对链表进行两...原创 2019-12-11 12:41:30 · 136 阅读 · 0 评论 -
合并K个排序链表
问题: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 题解: 做这个题的时候,我们肯定做过合并两个排序链表噻,代码下面贴出来了的。这个题其实就是变向的做合并2个排序链表,只是看你...原创 2019-12-11 13:33:55 · 146 阅读 · 0 评论 -
leetcode51
n皇后问题研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的n皇后问题的解决方案。 每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 示例: 输入: 4 输出: [ [".Q..", // 解法 1 "...Q", ...原创 2019-10-29 22:26:16 · 268 阅读 · 1 评论