数据结构基础
metor_blank
这个作者很懒,什么都没留下…
展开
-
白话数据结构之二叉树(Same Tree)java,C实现
小哥我今日突然诗性大发想写点什么,可是又找不到头绪于是乎直接打开google,登陆leetcode 找到database 目录栏的tree栏目。闲话我们从倒数的第一个题目开始先带着大家从easy 部分开始。对于树的基本概念还比较模糊的同学请自行查阅相关文档文章,这里我也推荐一篇博客: http://blog.csdn.net/pony_maggie/article/details/3839051原创 2017-03-21 20:15:19 · 366 阅读 · 0 评论 -
Reorder List and Sum of Left Leaves
Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes’ values.For example, Given {1,2,3,4}, reorder it to {1,4,2,3}原创 2017-04-14 12:43:21 · 217 阅读 · 0 评论 -
Convert Sorted Array to Binary Search Tree and Merge Two Sorted Lists
之前几天的清明小长假,没有更新了,现在继续过来接着补上。 首先我们还是来看链表部分:Merge Two Sorted Lists 字面理解是,把两个有序的单链表合并成一个链表,当然合并过后的链表肯定是有序的,不管是升序还是降序。 分析:要合并两个链表,我们必须首先找到一个基准的链表的,定一个基准,这里我们以链表1为基准: ListNode* mergeTwoLists(ListNode* l1,原创 2017-04-05 17:24:30 · 243 阅读 · 0 评论 -
Insertion Sort List and Binary Tree Paths
题意如下: Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree:1 / \ 2 3 \ 5All root-to-leaf paths are:[“1->2->5”, “1->3”],返回所有的从叶子节点到根节点的路径,这个用递归原创 2017-04-13 12:47:48 · 225 阅读 · 0 评论 -
sortList and Lowest Common Ancestor of a Binary Search Tree
首先解析二叉树 Lowest Common Ancestor of a Binary Search Tree ,寻找二叉树中某两个节点中路径最短的根节点。如下,2与8 ,最短路径根节点为6. _______6______ / \___2__ ___8__/ \ / \0 _4 7原创 2017-04-10 20:06:21 · 205 阅读 · 0 评论 -
数据结构之Remove Duplicates from Sorted List 和Maximum Depth of Binary Tree
今天仍旧照旧,来解析数据结构,一道单链表和一道二叉树的问题。 先来看看链表: Remove Duplicates from Sorted List。 题目意思删除链表中的重复及节点,注意已经声明,链表是有序的,经过排序。 分析: 有序链表的重复元素肯定是连续的例如 1->2->3->3->4. 那么我们只需要注意删除节点后指针的指向问题。struct ListNode* del原创 2017-03-31 14:13:39 · 259 阅读 · 0 评论 -
数据结构之Remove Linked List Elements 以及二叉树对称Symmetric Tree
今天继续来闲话几句数据结构之单链表,题目的意思是删除链表中的特定元素,想来想去用C/C++ 来coding,才能更深刻的理解数据结构,故而以后在关于数据结构方面,我尽量用c/c++ 来coding。看例子: Example Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6 Return: 1 –> 2 –> 3 –> 4 –> 5删除链表中所有与原创 2017-03-30 14:02:48 · 369 阅读 · 0 评论 -
Path Sum and Delete Node in a Linked List
今天照例更新数据结构基础,希望各位各取所需,我本人是习惯通过题目通过code来加深对数据结构以及某些算法的理解。现在首先我们还是来看看二叉树相关的题目: Path sum,leetcode上给出的演示如下:For example: Given the below binary tree and sum = 22, 5 / \ 4 8原创 2017-04-08 15:51:27 · 240 阅读 · 0 评论 -
Minimum Depth of Binary Tree and quick sort
今日更新主要内容如下: 第一、二叉树求最小二叉树深度。第二、分析快速排序算法。 二叉树部分: 求二叉树最小深度,无非是两种DFS、BFS。我们先来看深度遍历方法。DFS分析: 1.对比跟节点左右子树深度,最小的那个加1即是最小深度,代码如下:int minDepth(TreeNode* root){ if(root == NULL) return原创 2017-04-07 14:29:15 · 211 阅读 · 0 评论 -
链表倒转Reverse Linked List II 和二叉树BinaryTree倒转专题
在解析这个函数的实现时,我们先来回顾下函数: Reverse Linked List 。struct ListNode* reverseList(struct ListNode* head){ if(head == NULL) return head; struct ListNode* p = head; hea原创 2017-03-29 15:14:29 · 360 阅读 · 0 评论 -
Balanced Binary Tree and Remove Nth Node From End List
今天我们来继续解析链表和二叉树相关的题目: 首先看 Remove Nth Node From End List 题意是删除链表的第N个尾巴节点。 算法分析: 1. 第一步求出链表长度。 2. 遍历到第N个尾巴节点。然后删除节点。 3. 节点指针转换,若目的节点为头结点,则要改变头结点。 4. 若为非头结点,指针指向下一个节点的next位置即可。 现象我们来看代码:struct L原创 2017-04-06 15:09:20 · 194 阅读 · 0 评论