leetcode
elephantdees
这个作者很懒,什么都没留下…
展开
-
二叉树遍历
文章目录一、二叉树的先序遍历三、二叉树的中序遍历三、二叉树的后序遍历三、二叉树的层次遍历四、广度优先遍历四、深度优先遍历一、二叉树的先序遍历二叉树的先序遍历,递归实现和非递归实现。递归实现代码如下(示例): public void preOrder(TreeNode root){ if(root!=null) list.add(root.val); if(root.left!=null) preOrder(root.left); if(root.r原创 2020-10-15 16:07:21 · 133 阅读 · 0 评论 -
leetcode199. 二叉树的右视图
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { List<Integer> list=new ArrayList<Integer>(); .原创 2020-08-22 20:59:38 · 87 阅读 · 0 评论 -
从上到下打印二叉树
从上到下打印二叉树从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。class Solution { List<List<Integer>> biglist = new ArrayList<List<Integer>>(); public List<List<Integer>>...原创 2020-03-17 13:30:22 · 82 阅读 · 0 评论 -
组合总和 II
题目:给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。解题思路采用回溯法:采用一个stack添加一个小于目标数的数组元素,同时将目标数替换为目标数与数组元素的差。进行遍...原创 2020-02-29 14:17:41 · 87 阅读 · 0 评论 -
二叉树的锯齿形层次遍历
题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7],返回锯齿形层次遍历如下:[[3],[20,9],[15,7]]题解首先采用遍历的方法层次遍历二叉树,将返回的集合,如果集合的层数为奇书则反转list。返回集合。代码class Solu...原创 2020-02-26 13:58:52 · 97 阅读 · 0 评论 -
leetcode刷题日记
题目给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。思路们注意到这个问题可以容易地简化成另一个问题:删除从列表开头数起的第 (L - n + 1)(L−n+1) 个结点,其中 LL 是列表的长度。只要我们找到列表的长度 LL,这个问题就很容易解决。代码public ListNode removeNthFromEnd(ListNode...原创 2020-02-15 13:39:14 · 204 阅读 · 0 评论 -
leetcode---刷题日记
题目:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。解题思路:按照最长链表的长度遍历两个链表,当链表的节点为空时则取0否则取节点的值,将两个值进行相加的合除以10,当大于10时...原创 2020-02-14 13:25:31 · 93 阅读 · 0 评论 -
leetcode-----刷题日记
题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。解题思路采用辅助指针对数组进行遍历,当前节点与next节点的值相同时删除下一个节点,如果不相同才进行pre=pre.next。当pre.next==null时结束遍历。代码实现复杂度分析:时间复杂度为O(n),对链表进行遍历,时间复杂度为链表的长度。空间复杂度为O(1),没有使用...原创 2020-02-13 13:59:18 · 96 阅读 · 0 评论 -
leetcode--刷题日记
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解题思路采用一个带头节点的指针head链接合并后的新指针,一个空指针pre进行循环加载两个链表中的节点比较两个链表节点的值,pre指针链接较小值的链表的节点,依次遍历两个链表,直到一个为空停止循环。最后将不为空的链表加载到pre指针后面。返回经过链接的有序链表head.next。pre=h...原创 2020-02-13 13:34:45 · 123 阅读 · 0 评论