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

原題 迭代法 解題思路 新建兩個ListNode變量p1與p2存放遍歷時的節點與其後驅節點,原先爲P1->P2,,遍歷時將其反轉P2-P1,遍歷結束則整個鏈表翻轉完畢。 需要注意的是head節點在迭代之前要指向null 圖解 源代碼

原创 LeetCode題解-86-Partition List

原題 解法1(參考別人,更簡潔) 解題思路 將比X小的節點串成一串head1,將剩餘的節點串成一串head2,最後將head1->head2 代碼 public class Solution86 { public ListN

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

原題 簡介 該題共有2種解法,一種迭代,一種遞歸。 迭代法 解題思路 每一次取K個節點作爲子鏈表,將其反轉,然後將反轉後的子鏈表添加到新的鏈表中。 圖解 代碼 public class Solution25 { publ

原创 LeetCode題解-226-Invert Binary Tree

儘管寫LeetCode解答主要是爲了自己整理思路,但是如果對您也正好有幫助,請點個贊給菜鳥一點鼓勵吧 :-) 原題 解法分析 解法1使用了遞歸; 解法2使用了迭代法,爲廣度優先的層級遍歷。 解法1 解法分析 遞歸。反轉左子樹與右子樹

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

儘管寫LeetCode解答主要是爲了自己整理思路,但是如果對您也正好有幫助,請點個贊給菜鳥一點鼓勵吧 :-) 原題 解法分析 解法1使用遞歸法; 解法2參考了別人的思路,爲迭代法,類似於廣度優先搜索; 自己的迭代法使用了後序遍歷來

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

原題 解題思路 利用兩個節點node1與node2進行遍歷,node2是node1的後驅節點 if(node1.next.val == node2.next.val) 那麼此時存在重複的節點, 記錄下此值val,將node1之後的所

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

轉載請註明出處,GitHub鏈接點擊打開鏈接 原題 解題思路 迭代前 1、添加dummy節點(0)作爲前驅節點,保持處理head節點時與其他節點一致,無需單獨考慮; 2、鏈表往前迭代找到我們要處理的mNode(2),由於mNode也需要

原创 LeetCode題解-61-Rotate List

原題 感覺這題沒有交代清楚細節,解釋一下。本題是將最後K個節點移動到頭部,其中k如果大於鏈表的長度的話,k要根據鏈表的長度取餘再做變化。例如,示例中鏈表長度爲5,那麼當k=7的時候,K = K %5 = 2,返回4->5->1->2->

原创 LeetCode題解-234-Palindrome Linked List

原題 翻譯:給定一個單向鏈表,判斷該鏈表是否迴文。 解題思路 迴文的判斷爲第i個節點與第N-1個節點比較,如果對於每一個i,節點i與節點N-i的值均相同,那麼該鏈表爲迴文。對於鏈表,每次取接近尾部的節點均需O(N)次,而Array只需

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

原題 本題較爲簡單,但是只想到了迭代的解法,沒有想到遞歸。 迭代法 解題思路 比較L1與L2並增加新鏈表的節點,值爲L1或者L2中較小的值。 代碼 public class Solution21 { public ListN

原创 圖解View的事件分發機制

轉載請註明出處。 概述   本篇文章爲Android點擊事件分發的學習筆記,閱讀了任玉剛前輩的《Android開發藝術探索》3.4節之後,整理了事件分發源碼的流程圖以幫助理解。本文可配合以下資料閱讀:   《Android開發藝

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

原題 解題思路 遍歷節點,如果當前節點的後驅節點與本節點的值一致,刪除後驅節點。 圖解 代碼 public class Solution83 { public ListNode deleteDuplicates(ListNo

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

原題 解題思路 題目比較簡單,首先增加dummy節點作爲頭節點,使head節點的處理與其他的節點保持一致。遍歷節點,如果下一個節點的值匹配,則刪除下一個節點。 圖解 代碼 public class Solution203 {

原创 LeetCode題解-100-Same Tree

儘管寫LeetCode解答主要是爲了自己整理思路,但是如果對您也正好有幫助,請點個贊給菜鳥一點鼓勵吧 :-) 原題 解法概覽 解法1使用了遞歸; 解法2使用了迭代法。 解法1 解法分析 遞歸判斷兩棵樹的左子樹是否相同,如果兩棵子樹都

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

原題 一直沒有看懂這題,如果要在鏈表中刪除指定的節點的話不是應該要給出2個輸入參數麼:1、鏈表ListNode head, 2、節點ListNode node。想了半天想不明白就直接看了別人的解答。看了別人的解答之後自己的內心幾乎是崩潰