![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
be_gin_ner
这个作者很懒,什么都没留下…
展开
-
删除排序链表中的重复元素II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例2:输入: 1->1->1->2->3输出: 2->3/** * Definition for singly-li...原创 2019-04-04 23:02:10 · 98 阅读 · 0 评论 -
根据中序遍历和后序遍历序列构造二叉树
思路:从后往前遍历后序数组,找到根节点,然后,构建右子树,最后构建左子树class Solution { class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } private in...原创 2019-08-03 19:54:31 · 800 阅读 · 0 评论 -
常见排序之堆排序
堆排序堆排序(Heapsort)指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。 小根堆 大根堆 ...原创 2019-07-26 22:56:25 · 164 阅读 · 0 评论 -
二叉树的非递归遍历(前序,中序,后序,层序)
废话不多说,直接上代码。有问题欢迎提出前序遍历非递归void binaryTreePrevOrderNonR(TreeNode root){ if(root == null ){ return ; } Stack<TreeNode> stack = new Stack<>(); ...原创 2019-07-30 17:06:14 · 138 阅读 · 0 评论 -
两数相加(给出两个 非空 的链表用来表示两个非负的整数)
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8...原创 2019-04-03 19:38:06 · 2646 阅读 · 2 评论 -
环形链表(给定一个链表,判断链表中是否有环。)
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。如果pos是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。 示例2:输入:head = [1,2], pos =...原创 2019-04-02 20:54:41 · 457 阅读 · 0 评论 -
环形链表II
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node inde...原创 2019-04-07 22:53:10 · 99 阅读 · 0 评论 -
合并两个有序链表(将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。)
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * public class ListNode { * ...原创 2019-04-01 20:44:02 · 471 阅读 · 0 评论 -
相交链表
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注...原创 2019-04-05 22:35:29 · 87 阅读 · 0 评论 -
从百万数据中找到第K大的数并且时间复杂度为O(N)
假设数组为array,求第K大的元素。注意:因为快排排序后,数组是由小到大的,所以第K大的元素为倒数第十个即 array[array.length-K+1];所以我们要令k =array.length-K+1思路:利用快排的分治思想,先对数组进行一趟快排,将数组分为三个区,(0,par),(par),(par+1,array.length-1)。判断k与par的大小,如果par +1&...原创 2019-08-06 18:24:38 · 1311 阅读 · 0 评论