摘要:
题目描述: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 思路分析: 其实每次遍历就是划分左右子树数组,然后同样的递归先得到左右子树的根节点,再依次划分即可。注意下标索引的写 阅读全文
摘要:
题目描述: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"] 思路分析: 这个题一眼回溯,回溯和递归其实也是紧密相关的。 1.确定回溯 阅读全文
摘要:
题目描述: 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 输入:root = [3,9,20,null,null,15,7] 输出:[[15,7],[9,20],[3]] 思路分析: 这个题主要还是二叉树的层序遍历问 阅读全文
摘要:
题目描述: 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 思路分析: 递归法: 前序遍历的顺序是中左右的顺序。那么每个子树都是这个顺序,所以可以使用递归进行遍历。递归遍历有3部曲 1.确定递归函数的参数和返回值。 因为返回值要求保存在一个数组中,所以递归函数的参数应该包括树的根节点和 阅读全文
摘要:
题目描述: 给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 阅读全文
摘要:
题目描述: 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 思路分析: 没到指定的位置范围时,直接进行链表的链接,然后到了需要转换的范围就将这些节点用一个栈保存 阅读全文
摘要:
# 题目描述: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 阅读全文
摘要:
# 题目描述: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 要求时间复杂度为O(nlogn) ## 思路分析: 按要求需要使用归并排序。那么归并排序的思路是分治的思想,如下图所示: 简单说下思路:先将每次将链表划分成两个部分,直到不能划分【递归】,然后对两个链表进行排 阅读全文
摘要:
题目描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 注意这里的相交节点表示的是值和物理位置都相同的节点,不仅仅是值相同。 思路分析: 假设链表A和链表B的长度分别为lenA和lenB,这个方法的奇妙 阅读全文
摘要:
题目描述: 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入:haystack = "sadbutsad 阅读全文