力扣编程
原力与你同在
我,最后的绝地武士
展开
-
给定一个二叉树,BFS遍历
public static Queue<Integer> bfs(TreeNode root){ Queue<Integer> queue=new LinkedList<>(); Queue<TreeNode> help=new LinkedList<>(); help.offer(root); while (!help.isEmpty()){ TreeNod.原创 2022-03-20 10:20:36 · 573 阅读 · 0 评论 -
给定一个数组,返回对应的链表存储
public static ListNode buildLinks(int[] arr) { ListNode head = null; for (int e : arr) { head = buildLink(head, e); } return head; } public static ListNode buildLink(ListNode head, int v) { if (hea.原创 2022-03-20 09:59:27 · 472 阅读 · 0 评论 -
给定一个数组,返回对应的二叉树结构
例如:给定数组[1,2,2,3,4,4,3]返回为:代码如下:public static TreeNode buildTree(Integer[] arr){ if(arr.length==1) return new TreeNode(arr[0]); Queue<TreeNode> queue=new LinkedList<>(); TreeNode root=new TreeNode(arr[0]); que原创 2022-03-20 09:56:21 · 183 阅读 · 0 评论 -
力扣,两两交换链表中的节点
class Solution { public static ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head; ListNode result=null; ListNode index=head; // 记录链表的交换前的前置节点位置 ListNode pre=null; while (ind.原创 2022-03-19 20:50:15 · 154 阅读 · 0 评论 -
力扣,删除链表中第N个节点
题目如下:这里提供两种思路,大同小异思路一:统计链表长度,记录链表尾,根据总长和倒数N的位置计算删除节点之前的位置,删除返回class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { // 链表总长 int len=0; // 链表尾巴 ListNode tail=null; ListNode tem=head;原创 2022-03-19 17:37:37 · 484 阅读 · 0 评论 -
三数之和的思路
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路// 要用双指针,先排序// 固定最小的数// 然后指针从两头移动,判断之和等于0存储...原创 2022-03-15 11:15:05 · 175 阅读 · 0 评论 -
字符串判断是否子串
public static boolean isSub(String s,String tar){ int i = 0,j = 0; while (i<s.length()&&j<tar.length()){ if(s.charAt(i) == tar.charAt(j)){ j++; } i++; } if(j原创 2022-03-02 12:02:45 · 621 阅读 · 0 评论 -
树的先序、中序、后序遍历
static public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val原创 2022-03-02 11:09:24 · 93 阅读 · 0 评论 -
力扣1 求和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。public static int[] twoSum2(int[] nums, int target) { int[] indexs = new int[2]; HashMap<Integer,Integer>原创 2022-02-25 16:54:13 · 67 阅读 · 0 评论