{"id":18430790,"url":"https://github.com/sunfusheng/algo","last_synced_at":"2025-10-07T09:16:08.413Z","repository":{"id":89229453,"uuid":"241799609","full_name":"sunfusheng/Algo","owner":"sunfusheng","description":"这是一款 Kotlin 语言版本的 Android 客户端本地化展示 Java 语言编写的面试算法 ( Algorithm )，会持续更新！","archived":false,"fork":false,"pushed_at":"2022-06-15T09:02:50.000Z","size":948,"stargazers_count":33,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-22T22:24:17.164Z","etag":null,"topics":["algo","algorithm","binary-tree","leetcode","linkedlist","queue","stack"],"latest_commit_sha":null,"homepage":"https://github.com/sunfusheng/Algo","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunfusheng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-20T05:15:44.000Z","updated_at":"2023-07-13T01:19:27.000Z","dependencies_parsed_at":"2023-06-14T12:15:14.434Z","dependency_job_id":null,"html_url":"https://github.com/sunfusheng/Algo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfusheng%2FAlgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfusheng%2FAlgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfusheng%2FAlgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfusheng%2FAlgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunfusheng","download_url":"https://codeload.github.com/sunfusheng/Algo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247698215,"owners_count":20981321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algo","algorithm","binary-tree","leetcode","linkedlist","queue","stack"],"created_at":"2024-11-06T05:22:25.187Z","updated_at":"2025-10-07T09:16:03.380Z","avatar_url":"https://github.com/sunfusheng.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Algo\n\n这是一款 Kotlin 语言版本的 Android 客户端本地化展示 Java 语言编写的面试算法 ( Algorithm )，会持续更新！\n\n# LeetCode算法\n\n* 数组\n    * [1.两数之和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/TwoSum.java)\n    * [4.寻找两个有序数组的中位数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindMedianSortedArrays.java)\n    * [11.盛最多水的容器](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/HolderMaxWater.java)\n    * [15.三数之和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/ThreeSum.java)\n    * [26.删除排序数组中的重复项](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/RemoveDuplicates.java)\n    * [27.移除元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/RemoveElement.java)\n    * [33.搜索旋转排序数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/RotateSortArray.java)\n    * [35.搜索插入位置](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/SearchInsert.java)\n    * [42.接雨水](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/HoldRainWater.java)\n    * [46.全排列](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/Permute.java)\n    * [53.最大子序和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MaxSubArray.java)\n    * [54.螺旋矩阵](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/SpiralOrder.java)\n    * [56.合并区间](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MergeArrayInterval.java)\n    * [66.加一](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/PlusOne.java)\n    * [78.子集](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/SubSets.java)\n    * [88.合并两个有序数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MergeSortedArray.java)\n    * [118.杨辉三角](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/YangHuiTriangle.java)\n    * [119.杨辉三角 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/YangHuiTriangleII.java)\n    * [121.买卖股票的最佳时机](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MaxProfit.java)\n    * [122.买卖股票的最佳时机 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MaxProfitII.java)\n    * [128.最长连续序列](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/LongestConsecutive.java)\n    * [135.分发糖果](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/DistributeCandy.java)\n    * [136.只出现一次的数字](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/SingleNumber.java)\n    * [167.两数之和 II - 输入有序数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/TwoSumII.java)\n    * [169.多数元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MajorityElement.java)\n    * [189.旋转数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/RotateArray.java)\n    * [198.打家劫舍](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/Rob.java)\n    * [200.岛屿数量](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/NumIslands.java)\n    * [215.数组中的第K个最大元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindKthLargest.java)\n    * [217.存在重复元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/ContainsDuplicate.java)\n    * [219.存在重复元素 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/ContainsNearbyDuplicate.java)\n    * [283.移动零](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MoveZeroes.java)\n    * [303.区域和检索 - 数组不可变](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/NumArray.java)\n    * [322.零钱兑换](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/CoinChange.java)\n    * [347.前 K 个高频元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/TopKFrequent.java)\n    * [349.两个数组的交集](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/Intersection.java)\n    * [350.两个数组的交集 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/IntersectionII.java)\n    * [414.第三大的数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/ThirdMax.java)\n    * [447.回旋镖的数量](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/NumberOfBoomerangs.java)\n    * [448.找到所有数组中消失的数字](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindDisappearedNumbers.java)\n    * [453.最小移动次数使数组元素相等](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MinMoves.java)\n    * [455.分发饼干](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindContentChildren.java)\n    * [463.岛屿的周长](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/IslandPerimeter.java)\n    * [485.最大连续1的个数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindMaxConsecutiveOnes.java)\n    * [496.下一个更大元素 I](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/NextGreaterElement.java)\n    * [506.相对名次](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindRelativeRanks.java)\n    * [532.数组中的K-diff数对](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindPairs.java)\n    * [560.和为K的子数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/SubArraySum.java)\n    * [561.数组拆分 I](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/ArrayPairSum.java)\n    * [566.重塑矩阵](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/MatrixReshape.java)\n    * [575.分糖果](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/DistributeCandies.java)\n    * [581.最短无序连续子数组](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/FindUnsortedSubArray.java)\n    * [739.每日温度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Array/DailyTemperatures.java)\n\n* 数字\n    * [7.整数反转](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ReverseInt.java)\n    * [9.回文数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/PalindromeNum.java)\n    * [13.罗马数字转整数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/RomeToInt.java)\n    * [67.二进制求和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/AddBinary.java)\n    * [69.x的平方根](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/MySqrt.java)\n    * [70.爬楼梯](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ClimbStairs.java)\n    * [168.Excel表列名](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ConvertToTitle.java)\n    * [171.Excel表列序号](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/TitleToNumber.java)\n    * [172.阶乘后的零](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/TrailingZeroes.java)\n    * [190.颠倒二进制位](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ReverseBits.java)\n    * [191.位1的个数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/HammingWeight.java)\n    * [202.快乐数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsHappy.java)\n    * [204.计数质数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/CountPrimes.java)\n    * [231.2的幂](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsPowerOfTwo.java)\n    * [258.各位相加](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/AddDigits.java)\n    * [263.丑数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsUgly.java)\n    * [268.缺失数字](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/MissingNumber.java)\n    * [292.Nim 游戏](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/CanWinNim.java)\n    * [299.猜数字游戏](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/GetHint.java)\n    * [326.3的幂](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsPowerOfThree.java)\n    * [342.4的幂](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsPowerOfFour.java)\n    * [367.有效的完全平方数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/IsPerfectSquare.java)\n    * [371.两整数之和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/GetSum.java)\n    * [374.猜数字大小](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/GuessNumber.java)\n    * [401.二进制手表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ReadBinaryWatch.java)\n    * [405.数字转换为十六进制数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ToHex.java)\n    * [412.Fizz Buzz](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/FizzBuzz.java)\n    * [441.排列硬币](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ArrangeCoins.java)\n    * [461.汉明距离](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/HammingDistance.java)\n    * [476.数字的补数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/FindComplement.java)\n    * [492.构造矩形](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ConstructRectangle.java)\n    * [504.七进制数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/ConvertToBase7.java)\n    * [507.完美数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/CheckPerfectNumber.java)\n    * [509.斐波那契数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Number/Fibonacci.java)\n\n* 字符串\n    * [3.无重复字符的最长子串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LengthOfLongestSubstring.java)\n    * [5.最长回文子串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LongestPalindrome.java)\n    * [6.Z字形变换](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ZShapedConvert.java)\n    * [8.字符串转换整数 (atoi)](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/MyAtoi.java)\n    * [14.最长公共前缀](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LongestCommonPrefix.java)\n    * [17.电话号码的字母组合](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LetterCombinations.java)\n    * [20.有效的括号](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ValidBrackets.java)\n    * [28.实现strStr()](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ImplStrStr.java)\n    * [38.外观数列](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/CountAndSay.java)\n    * [58.最后一个单词的长度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LengthOfLastWord.java)\n    * [93.复原IP地址](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/RestoreIpAddresses.java)\n    * [125.验证回文串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/IsPalindrome.java)\n    * [151.翻转字符串里的单词](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ReverseWords.java)\n    * [205.同构字符串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/IsIsomorphic.java)\n    * [242.有效的字母异位词](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/IsAnagram.java)\n    * [290.单词规律](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/WordPattern.java)\n    * [344.反转字符串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ReverseString.java)\n    * [345.反转字符串中的元音字母](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ReverseVowels.java)\n    * [383.赎金信](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/CanConstruct.java)\n    * [387.字符串中的第一个唯一字符](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/FirstUniqChar.java)\n    * [389.找不同](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/FindTheDifference.java)\n    * [392.判断子序列](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/IsSubsequence.java)\n    * [394.字符串解码](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/DecodeString.java)\n    * [409.最长回文串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/BuildLongestPalindrome.java)\n    * [415.字符串相加](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/AddStrings.java)\n    * [434.字符串中的单词数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/CountSegments.java)\n    * [438.找到字符串中所有字母异位词](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/FindAnagrams.java)\n    * [443.压缩字符串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/Compress.java)\n    * [459.重复的子字符串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/RepeatedSubstringPattern.java)\n    * [482.密钥格式化](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/LicenseKeyFormatting.java)\n    * [500.键盘行](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/FindWords.java)\n    * [520.检测大写字母](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/DetectCapitalUse.java)\n    * [521.最长特殊序列 Ⅰ](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/FindLUSlength.java)\n    * [541.反转字符串 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ReverseStr.java)\n    * [551.学生出勤记录 I](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/CheckRecord.java)\n    * [557.反转字符串中的单词 III](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/ReverseWordsIII.java)\n    * [647.回文子串](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/String/CountPalindrome.java)\n\n* 链表\n    * [2.两数相加](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/AddTwoNumbers.java)\n    * [21.合并两个有序链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/MergeTwoLists.java)\n    * [23.合并K个排序链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/MergeKLists.java)\n    * [24.两两交换链表中的节点](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/SwapPairs.java)\n    * [25.K 个一组翻转链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/ReverseKGroup.java)\n    * [83.删除排序链表中的重复元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/DeleteDuplicates.java)\n    * [141.环形链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/HasCycle.java)\n    * [146.LRU缓存机制](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/LRUCache.java)\n    * [148.排序链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/SortListNode.java)\n    * [155.最小栈](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/MinStack.java)\n    * [160.相交链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/GetIntersectionNode.java)\n    * [203.移除链表元素](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/RemoveElements.java)\n    * [206.反转链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/ReverseList.java)\n    * [225.用队列实现栈](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/MyStack.java)\n    * [232.用栈实现队列](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/MyQueue.java)\n    * [234.回文链表](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/IsPalindrome.java)\n    * [237.删除链表中的节点](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/DeleteNode.java)\n    * [445.两数相加 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/LinkedList/AddTwoNumbersII.java)\n\n* 二叉树\n    * [94.二叉树的中序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/InorderTraversal.java)\n    * [96.不同的二叉搜索树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/BSTNum.java)\n    * [100.相同的树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/SameTree.java)\n    * [101.对称二叉树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/IsSymmetric.java)\n    * [102.二叉树的层序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/LevelOrder.java)\n    * [103.二叉树的锯齿形层次遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/ZigzagLevelOrder.java)\n    * [104.二叉树的最大深度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/MaxDepth.java)\n    * [107.二叉树的层次遍历 II](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/LevelOrderBottom.java)\n    * [108.将有序数组转换为二叉搜索树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/SortedArrayToBST.java)\n    * [110.平衡二叉树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/IsBalanced.java)\n    * [111.二叉树的最小深度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/MinDepth.java)\n    * [112.路径总和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/HasPathSum.java)\n    * [144.二叉树的前序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/PreorderTraversal.java)\n    * [145.二叉树的后序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/PostorderTraversal.java)\n    * [199.二叉树的右视图](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/RightSideView.java)\n    * [226.翻转二叉树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/InvertTree.java)\n    * [235.二叉搜索树的最近公共祖先](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/LowestCommonAncestor.java)\n    * [236.二叉树的最近公共祖先](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/LowestCommonAncestorII.java)\n    * [257.二叉树的所有路径](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/BinaryTreePaths.java)\n    * [404.左叶子之和](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/SumOfLeftLeaves.java)\n    * [437.路径总和 III](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/PathSumIII.java)\n    * [450.删除二叉搜索树中的节点](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/DeleteBinarySearchTreeNode.java)\n    * [501.二叉搜索树中的众数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/FindMode.java)\n    * [530.二叉搜索树的最小绝对差](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/GetMinimumDifference.java)\n    * [538.把二叉搜索树转换为累加树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/ConvertBST.java)\n    * [543.二叉树的直径](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/DiameterOfBinaryTree.java)\n    * [559.N叉树的最大深度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/MultiMaxDepth.java)\n    * [563.二叉树的坡度](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/FindTilt.java)\n    * [572.另一个树的子树](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/IsSubtree.java)\n    * [589.N叉树的前序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/MultiWayTreePreOrder.java)\n    * [590.N叉树的后序遍历](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/BinaryTree/MultiWayTreePostOrder.java)\n\n* 查找排序\n    * [278.第一个错误的版本](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/FindSort/FirstBadVersion.java)\n    * [475.供暖器](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/FindSort/FindRadius.java)\n\n* 面试题\n    * [面试题 01.07. 旋转矩阵](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Interview/RotateMatrix.java)\n    * [面试题 #.01. 无序数组的中位数](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Interview/UnorderedArrayMedian.java)\n    * [面试题 #.02. 生产者消费者模式](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Interview/ProducerConsumer.java)\n    * [面试题 #.03. 无序数组排序，负数在前正数在后且有序](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Interview/PositiveNegative.java)\n    * [面试题 #.04. 泛型化的二分搜索](/module-leetcode/src/main/java/com/wangcheng/leetcode/LeetCode/Interview/BinarySearch.java)\n\n\u003cbr/\u003e\n\n# IT名企算法与数据结构题目最优解\n\n* 栈和队列问题\n    * [设计一个有getMin功能的栈](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/MinStack.java)\n    * [用两个栈实现队列](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/TwoStacksQueue.java)\n    * [如何仅用递归函数和栈操作逆序一个栈](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/RecursionReverseStack.java)\n    * [猫狗队列](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/CatDogQueue.java)\n    * [用一个栈实现另一个栈的排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/SortStackByStack.java)\n    * [用栈来求解汉诺塔问题](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/Hanoi.java)\n    * [生成窗口最大值数组](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/MaxWindow.java)\n    * [单调栈结构](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/NearLessNum.java)\n    * [求最大子矩阵的大小](/module-algo/src/main/java/com/sunfusheng/algo/Algo/StackQueue/MaxRecSize.java)\n\n* 链表问题\n    * [打印两个有序链表的公共部分](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/PrintCommonPart.java)\n    * [删除单链表和双链表倒数第K个节点](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/RemoveLastKthNode.java)\n    * [删除链表的中间节点和a/b处的节点](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/RemoveMidNode.java)\n    * [反转单向链表和双向链](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/ReverseLinkedList.java)\n    * [反转部分单向链表](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/ReversePartLinkedList.java)\n    * [环形单链表的约瑟夫问题](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/Josephus.java)\n    * [判断一个链表是否为回文结构](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/LinkedListPalindrome.java)\n    * [将单向链表按某值划分成左边小、中间相等、右边大的形式](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/Partition.java)\n    * [复制含有随机指针节点的链表](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/CopyRandomLinkedList.java)\n    * [两个单链表生成相加链表](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/AddTwoLinkedList.java)\n    * [两个单链表相交的一系列问题](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/IntersectNode.java)\n    * [将单链表的每K个节点之间逆序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/LinkedList/ReverseKNodes.java)\n\n* 二叉树问题\n    * [用递归和非递归方式实现二叉树先序、中序、后序遍历](/module-algo/src/main/java/com/sunfusheng/algo/Algo/BinaryTree/BinaryTreeTraverse.java)\n    * [打印二叉树的边界节点](/module-algo/src/main/java/com/sunfusheng/algo/Algo/BinaryTree/PrintEdgeNodes.java)\n    * [二叉树的序列化和反序列化](/module-algo/src/main/java/com/sunfusheng/algo/Algo/BinaryTree/SerializeDeserializeBinaryTree.java)\n\n* 排序算法\n    * [冒泡排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/BubbleSort.java)\n    * [选择排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/SelectionSort.java)\n    * [插入排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/InsertionSort.java)\n    * [计数排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/CountSort.java)\n    * [快速排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/QuickSort.java)\n    * [归并排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/MergeSort.java)\n    * [堆排序](/module-algo/src/main/java/com/sunfusheng/algo/Algo/Sort/HeapSort.java)\n\n\u003cbr/\u003e\n\n### 运行Java main\n\n.idea/gradle.xml GradleProjectSettings标签下添加：\n\u003coption name=\"delegatedBuild\" value=\"false\" /\u003e\n\n### 贡献者\n\n[DIY-green](https://github.com/DIY-green)\n\n### 声明\n\n以上数据仅用于个人学习，严禁商业转载，如需使用请联系官方授权！\n\nLeetCode算法  \n链接：[https://leetcode-cn.com/problemset/all/](https://leetcode-cn.com/problemset/all/)\n\nIT名企算法与数据结构题目最优解\n【程序员代码面试指南：IT名企算法与数据结构题目最优解】第二版 作者：左程云\n\n### 关于作者\n\n[GitHub: sunfusheng](https://github.com/sunfusheng)\n\n[个人邮箱: sfsheng0322@126.com](https://mail.126.com/)\n\n[个人博客: sunfusheng.com](http://sunfusheng.com/)\n\n[简书主页](http://www.jianshu.com/users/88509e7e2ed1/latest_articles)\n\n[新浪微博](http://weibo.com/u/3852192525)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfusheng%2Falgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunfusheng%2Falgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfusheng%2Falgo/lists"}