算法思路
文章平均质量分 52
生来如风
这个作者很懒,什么都没留下…
展开
-
算法思想-二叉树
文章目录一、可出算法二、解决1. 二叉树的深度2. 按之字形顺序打印二叉树3. 二叉搜索树的第k个节点一、可出算法二、解决1. 二叉树的深度递归public int TreeDepth(TreeNode root) { if(root == null) return 0; int leftDepth = TreeDepth(root.left); // 左子树深度 int rightDepth = TreeDepth(root.ight); // 右子树深度原创 2022-02-19 11:06:22 · 796 阅读 · 0 评论 -
算法思想-链表
文章目录前言一、可出算法二、解决1. 从尾到头打印链表2. 反转链表3. 合并两个排序的链表4. 两个链表的第一个公共节点5. 链表中环的入口节点6. 链表中倒数最后 K 个节点7. 复杂链表的复制8. 删除链表中重复的节点前言温故知新一、可出算法二、解决1. 从尾到头打印链表从尾到头打印链表2. 反转链表public ListNode ReverseList(ListNode head) { if(head == null || head.next == null)原创 2022-01-19 20:37:07 · 621 阅读 · 0 评论 -
链表-从尾到头打印链表
从尾到头打印链表A:直接反转了当前链表,再对反转后的链接进行操作。时间复杂度O(n),空间复杂度O(1)public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode == null) return new ArrayList<Integer>(); ListNode pre = null, cur = listNode, next = null; wh原创 2022-01-19 16:49:15 · 543 阅读 · 0 评论 -
算法思想-快排
思路首先在数组中选一个数作为基准,通常为数组第一个数指针 i,j 分别指向数组第一个元素和最后一个元素。从 j 向左开始遍历,找到比基准小的数,将指针j对应的数赋值给指针i所在的位置,i++。交换,从i开始向右遍历,找到比基准大的数,将指针i对于的数赋值给指针j所在的位置,j–。不断重复以上步骤,知道 i、j 相遇。再将基准的值赋给指针 i、j 所在的位置。第一轮快排结束,基准左侧的数都小于等于基准,右侧的数都大于等于基准。将数组以基准为界限,划分成两个子数组。重复以上快排步骤。直到子数组的长度为1原创 2021-09-08 20:04:39 · 134 阅读 · 0 评论 -
有效括号的两种思路
有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。一、数组1、空字符串可被认为是有效字符串,单独判断3、字符串的长度必须为偶数,否则不是有效括号2、利用替换的思想(1)如果() [] {} 成对出现,用”“替换,相当于删除(2)剩下的,如果有成对的,继续替换(3)重复length/2次后,用isEmpty()判断...原创 2018-11-09 22:20:13 · 1185 阅读 · 0 评论