leetcode
逗点儿
大数据爱好者,菜鸟
展开
-
算法学习-二叉树遍历
二叉树非递归遍历主要有前序、中序、后续遍历三种方式,我使用相同的模板实现这三种遍历方式,后续如有面试,必先过一遍。整体逻辑需要注意: 1.栈中推入左右子树时,应先推右子树,再推左子树,达到顺序遍历的效果 2.遍历到需要弹出的节点,先push一个null作为输出标记,应在节点之后推入 前序遍历如下 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list=new Array原创 2021-04-25 22:49:14 · 90 阅读 · 0 评论 -
算法学习-二分查找详解
最近碰到二分查找题目被暴虐,故总结一下类似题目的规律,下次若忘记及时回来查缺补漏。我认为二分查找问题可分为三种类型: 简单二分查找(目标值查找) 左边界二分查找(查找目标值左边界、查找最后一个小于目标值的数) 右边界二分查找(查找目标值右边界、查找第一个大于目标值的数) 我使用的二分查找模板为: public static int binarySearch(int []arr,int target) { int l=0,r=arr.length-1; while原创 2021-04-18 20:49:28 · 107 阅读 · 0 评论 -
leetcode 206 链表反转
链表反转的代码实现方式有很多种,有使用头插法、使用多指针这两种方式通常为最优 我先介绍使用多指针的方式,下面我将用图解的方式展示如何进行链表反转: 图解 1.原数据 2.cur.next=pro 3.移动指针 pro=cur cur=Next ListNode Next=cur.next 4.以此类推 代码: public ListNode...原创 2018-08-26 19:29:53 · 503 阅读 · 0 评论