自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 LeetCode题解-114-Flatten Binary Tree to Linked List

原题原题链接:https://leetcode.com/problems/flatten-binary-tree-to-linked-list/解法概览解法1:迭代法,空间复杂度O(1),参考别人的解法:https://discuss.leetcode.com/topic/3995/share-my-simple-non-recursive-solution-o-1-s

2016-07-28 19:37:45 531

原创 LeetCode题解-103-Binary Tree Zigzag Level Order Traversal

原题原题链接:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/解题思路该题比较常规,为BFS的层级遍历,具体的解题思路与题解可以参见题104:http://blog.youkuaiyun.com/wangt443/article/details/51839068当栈中获得一层的所有节点

2016-07-27 21:19:52 434

原创 LeetCode题解-106-Construct Binary Tree from Inorder and Postorder Traversal

原题Given inorder and postorder traversal of a tree, construct the binary tree.Note: You may assume that duplicates do not exist in the tree.原题链接:https://leetcode.com/problems/construct-binary-t

2016-07-27 21:09:41 491

原创 LeetCode题解-105-Construct Binary Tree from Preorder and Inorder Traversal

原题Given preorder and inorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree. 原题链接:https://leetcode.com/problems/construct-binary-tree

2016-07-26 15:51:51 565

原创 LeetCode题解-113-Path Sum II

原题原题链接:https://leetcode.com/problems/path-sum-ii/解题思路与题257完全类似,请见:http://blog.youkuaiyun.com/wangt443/article/details/51939584代码public class Solution113_iterator { public List>

2016-07-21 10:54:47 416

原创 LeetCode题解-222-Count Complete Tree Nodes

没有做出来,所以参考了https://segmentfault.com/a/1190000003818177迭代法的图解如下:

2016-07-20 13:28:05 407

原创 LeetCode题解-98-Validate Binary Search Tree

原题原题链接:https://leetcode.com/problems/validate-binary-search-tree/解法概览解法1:错误的解法,但觉得可能很多人也会犯这样的错;解法2:迭代法;解法3:递归法;解法1(错误)思路分析递归,如果左子树比根节点小,右子树比左子树大,那么就是BST。这里的错误原因是要求根节点

2016-07-19 20:19:33 546

原创 LeetCode题解-257-Binary Tree Paths

原题原题链接:https://leetcode.com/problems/binary-tree-paths/解法概览解法1:迭代法,后序遍历解法2:递归法,参考了https://discuss.leetcode.com/topic/23047/clean-java-solution-accepted-without-any-helper-recursive-fun

2016-07-18 10:08:29 796

原创 LeetCode题解-129-Sum Root to Leaf Numbers

原题原题链接:https://leetcode.com/problems/sum-root-to-leaf-numbers/解法概览解法1:迭代法,后序遍历解法2:递归法解法1解法分析进行后序遍历,每次到达叶子节点的时候,计算栈中所有元素组成的数字的值,并加到sum中。后序遍历的方法与图解请见:http://blog.youkuaiyun.com/wan

2016-07-17 14:12:06 566

原创 LeetCode题解-112-Path Sum

原题原题链接https://leetcode.com/problems/path-sum/、这里要注意的是路径必须是从root到leaf , 不能是中间一段。解法概览解法1:迭代法,深度优先解法2:别人的更优雅的递归,参考https://discuss.leetcode.com/topic/3149/accepted-my-recursive-solution-

2016-07-16 10:31:17 497

原创 LeetCode题解-110-Balanced Binary Tree

原题原题链接:https://leetcode.com/problems/balanced-binary-tree/这个题目有一个很大的争议就是AVL的定义,我以为的AVL的定义一直是“no 2 leaf nodes differ in distance from the root by more than 1”,与这个题目不同,所以一开始提交了错误的方法,但是查阅了资料发现L

2016-07-15 10:56:54 470

原创 LeetCode题解-199-Binary Tree Right Side View

原题原题链接:https://leetcode.com/problems/binary-tree-right-side-view/解法概览解法1:迭代法,BFS解法2:递归,参考了https://discuss.leetcode.com/topic/11768/my-simple-accepted-solution-java/7解法1解题思路采用

2016-07-14 10:51:24 602

原创 《图解HTTP》学习笔记

以前学习网络技术的时候课程内容只上到TCP/IP为止,自己也没有继续阅读后面应用层的内容,所以之前每次遇到HTTP的问题的时候都是现查,工作的效率不高,学到的知识比价碎片化。所以这一两天阅读了薄薄的《Http图解》并做了思维导图,书中的图讲的非常通俗易懂,因此看得也很快。其中最后一章WEB安全没有阅读。导图补充HTTP遇到最多的可能就是报文和状态码了吧,但是因为内容太多,就没有写在

2016-07-13 15:54:38 690

原创 LeetCode题解-101-Symmetric Tree

原题链接:https://leetcode.com/problems/symmetric-tree/解法概览本题共有3种解法,解法1为别人的解答,解法2为参考别人思路后改造:https://discuss.leetcode.com/topic/5941/recursive-and-non-recursive-solutions-in-java解法1:递归法解法2

2016-07-13 10:24:57 662

原创 LeetCode题解-111-Minimum Depth of Binary Tree

原题链接:https://leetcode.com/problems/minimum-depth-of-binary-tree/解题概览需要注意的是这里的最小深度指的是根节点到叶节点的深度,例如对于二叉树[1, 2],最小深度为2而不是1!解法1:递归;解法2:广度优先遍历解法1解题思路最小深度为左右子树的最小深度中较小的那个值+1代

2016-07-12 10:12:54 627

原创 LeetCode题解-102&107-Binary Tree Level Order Traversal Ⅰ,Ⅱ

原题102107解法思路分析与前面很多的题类似,为二叉树的广度优先遍历(BFS),借助一个队列,共N次迭代,N为树的层高,每一次迭代全部第i层的节点出队列,第i+1层的节点进队列,因此每一次可以处理第i层的所有节点的值。图解(102)107的图解和102几乎相同,除了oneLevelNodes每次都是增加到AllLevelNodes的最前

2016-07-11 10:35:48 382

原创 LeetCode题解-235-Lowest Common Ancestor of a Binary Search Tree

原题解法概览本题自己想出的解法较为繁琐,虽然accept,但是参考意义不大。本文列出的两种解题思路均为别人的思路,原链接为更好的解法。解法1,迭代;解法2,递归。解法1解题思路Binary Search Tree的左子树的值小于根节点,右子树的值大于根节点,因此,如果(root.val - p.val) * (root.val - q.val)

2016-07-10 19:44:20 358

原创 LeetCode题解-230-Kth Smallest Element in a BST

原题概览BST是二叉查找树,它具有如下的性质:左子树中所有节点的值均小于根节点的值,右子树中所有节点的值均大于根节点的值。解法1使用了迭代法;解法2使用了递归法。解法1解题思路使用迭代法。由于BST的性质,使用二叉树的中序遍历。中序遍历先访问到的节点的值较小,每访问一个节点计数值+1,当计数值到达K的时候该节点就是要访问的节点。中序遍历的思路

2016-07-09 10:43:08 443

原创 LeetCode题解-145-Binary Tree Postorder Traversal

尽管写LeetCode解答主要是为了自己整理思路,但是如果对您也正好有帮助,请点个赞给菜鸟一点鼓励吧 :-)原题解法概览解法1为递归;解法2位迭代。解法1解题思路递归法。后序遍历左子树,后序遍历右子树,访问根节点。代码public class Solution145_recursive { public List po

2016-07-08 20:56:52 492

原创 LeetCode题解-144-Binary Tree Preorder Traversal

尽管写LeetCode解答主要是为了自己整理思路,但是如果对您也正好有帮助,请点个赞给菜鸟一点鼓励吧 :-)原题解法概览本题共有两种解法,1种递归,1种迭代。前序遍历:1)访问根节点;2)前序遍历左子树;3)前序遍历右子树。解法1解法分析递归法。访问根节点,递归访问左子树,递归访问右子树。代码public class Soluti

2016-07-07 16:20:51 414

原创 LeetCode题解-226-Invert Binary Tree

尽管写LeetCode解答主要是为了自己整理思路,但是如果对您也正好有帮助,请点个赞给菜鸟一点鼓励吧 :-)原题解法分析解法1使用了递归;解法2使用了迭代法,为广度优先的层级遍历。解法1解法分析递归。反转左子树与右子树,最后交换根节点的左子树与右子树。代码public class Solution226_recursive {

2016-07-07 15:20:08 374

原创 LeetCode题解-100-Same Tree

尽管写LeetCode解答主要是为了自己整理思路,但是如果对您也正好有帮助,请点个赞给菜鸟一点鼓励吧 :-)原题解法概览解法1使用了递归;解法2使用了迭代法。解法1解法分析递归判断两棵树的左子树是否相同,如果两棵子树都相同并且根节点的值也相同的话,则两棵树相同。代码public class Solution100_Recursiv

2016-07-06 20:03:20 441

原创 LeetCode题解-104-Maximum Depth of Binary Tree

尽管写LeetCode解答主要是为了自己整理思路,但是如果对您也正好有帮助,请点个赞给菜鸟一点鼓励吧 :-)原题解法分析解法1使用递归法;解法2参考了别人的思路,为迭代法,类似于广度优先搜索;自己的迭代法使用了后序遍历来统计树的深度,较为繁琐,没有参考意义。解法1解法分析递归计算左子树的深度与右子树的深度,那么树的深度为两个子树中深度

2016-07-06 15:08:17 500

原创 LeetCode题解-237-Delete Node in a Linked List

原题一直没有看懂这题,如果要在链表中删除指定的节点的话不是应该要给出2个输入参数么:1、链表ListNode head, 2、节点ListNode node。想了半天想不明白就直接看了别人的解答。看了别人的解答之后自己的内心几乎是崩溃的= =代码 public class Solution { public void deleteNode(ListNode no

2016-06-24 16:50:00 366

原创 LeetCode题解-61-Rotate List

原题感觉这题没有交代清楚细节,解释一下。本题是将最后K个节点移动到头部,其中k如果大于链表的长度的话,k要根据链表的长度取余再做变化。例如,示例中链表长度为5,那么当k=7的时候,K = K %5 = 2,返回4->5->1->2->3->NULL解法概要该题共有2种解法Ⅰ、快慢指针Ⅱ、将原链表变为循环链表(参考别人解法),更加简单解法1:快慢指针

2016-06-24 16:09:59 430

原创 LeetCode题解-25-Reverse Nodes in k-Group

原题简介该题共有2种解法,一种迭代,一种递归。迭代法解题思路每一次取K个节点作为子链表,将其反转,然后将反转后的子链表添加到新的链表中。图解代码public class Solution25 { public ListNode reverseKGroup(ListNode head, int k) {

2016-06-23 14:27:02 597

原创 LeetCode题解-21-Merge Two Sorted Lists

原题本题较为简单,但是只想到了迭代的解法,没有想到递归。迭代法解题思路比较L1与L2并增加新链表的节点,值为L1或者L2中较小的值。代码public class Solution21 { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == nu

2016-06-22 16:53:07 407

原创 LeetCode题解-86-Partition List

原题解法1(参考别人,更简洁)解题思路将比X小的节点串成一串head1,将剩余的节点串成一串head2,最后将head1->head2代码public class Solution86 { public ListNode partition(ListNode head, int x) { if (head == null || head.

2016-06-20 14:15:11 420

原创 LeetCode题解-234-Palindrome Linked List

原题翻译:给定一个单向链表,判断该链表是否回文。解题思路回文的判断为第i个节点与第N-1个节点比较,如果对于每一个i,节点i与节点N-i的值均相同,那么该链表为回文。对于链表,每次取接近尾部的节点均需O(N)次,而Array只需O(1)次,因此首先用一个Array记录下链表的值,在Array中进行回文的判断。代码public class Solution

2016-06-19 21:08:03 405

原创 LeetCode题解-82-Remove Duplicates from Sorted List II

原题解题思路利用两个节点node1与node2进行遍历,node2是node1的后驱节点if(node1.next.val == node2.next.val) 那么此时存在重复的节点,记录下此值val,将node1之后的所有值为val的节点删除;elsenode1与node2前进1步;通过一次遍历可以将链表中重复的元素删除完毕。

2016-06-18 16:24:08 312

原创 LeetCode题解-83-Remove Duplicates from Sorted List

原题解题思路遍历节点,如果当前节点的后驱节点与本节点的值一致,删除后驱节点。图解代码public class Solution83 { public ListNode deleteDuplicates(ListNode head) { if (head == null ||head.next == null)

2016-06-18 16:09:29 307

原创 LeetCode题解-203-Remove Linked List Elements

原题解题思路题目比较简单,首先增加dummy节点作为头节点,使head节点的处理与其他的节点保持一致。遍历节点,如果下一个节点的值匹配,则删除下一个节点。图解代码public class Solution203 { public ListNode removeElements(ListNode head, int val) { if (h

2016-06-18 11:11:22 414

原创 LeetCode题解-206-Reverse Linked List Ⅰ

原题迭代法解题思路新建两个ListNode变量p1与p2存放遍历时的节点与其后驱节点,原先为P1->P2,,遍历时将其反转P2-P1,遍历结束则整个链表翻转完毕。需要注意的是head节点在迭代之前要指向null图解源代码public class Solution_iterator { public ListNode reverseList(Lis

2016-06-17 15:04:54 512

原创 LeetCode题解-92-Reverse Linked List II

转载请注明出处,GitHub链接点击打开链接原题解题思路迭代前1、添加dummy节点(0)作为前驱节点,保持处理head节点时与其他节点一致,无需单独考虑;2、链表往前迭代找到我们要处理的mNode(2),由于mNode也需要被处理,所以我们同时要找到mNode的前驱节点mPreviousNode(1);3、node1 = mNode,node2 = mNode.n

2016-06-17 13:55:31 465

原创 图解View的事件分发机制

Android点击事件分发的学习笔记,阅读了任玉刚前辈的《Android开发艺术探索》3.4节之后,整理了事件分发源码的流程图以帮助理解。

2016-05-24 18:44:10 797

原创 Tiny6410Android应用程序(JNI)控制GPIO

Android与驱动的新手,因为最近需要学习为开发板编写Android驱动,因此参考了网上的一些教程,实现了最基本的GPIO驱动以及简单的APP界面来入个门。开发环境如下:FriendlyArm-TIny6410开发板,Android-2.3.4,android-kernel-2.6.36,Android Studio 1.4。

2016-03-28 19:35:10 1503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除