摘要: 双指针 通过交换指针位置来使指针在循环过程中达到相同的位置 public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB 阅读全文
posted @ 2020-10-23 21:45 消灭猕猴桃 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 双指针 class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode cur = head; while (cur != null) { ListNode tempNext = 阅读全文
posted @ 2020-10-23 20:50 消灭猕猴桃 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 原始链表操作无哑节点 class MyLinkedList { class Node { int val; Node next; Node (int x) { val = x; } } private Node first = null; // 链表长度 private int N = 0; /** 阅读全文
posted @ 2020-10-23 20:31 消灭猕猴桃 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 哑节点 删除链表的某个节点只需要操作该结点前一个节点的指针,假如删除的节点为头节点,那么就可以设置一个哑节点指向头节点,这样就统一了删除操作。 class Solution { public ListNode removeElements(ListNode head, int val) { List 阅读全文
posted @ 2020-10-23 19:05 消灭猕猴桃 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 模拟 模拟顺时针画矩阵过程 填充上行,从左到右 填充右列,从上到下 填充下行,从右到左 填充左列,从下到上 画一圈需要画四条边,需要注意的是每画一条边都需要遵循「左闭右开」原则 ,也就是说每一条边的画法要相同,不然代码会越写越乱。 下面按照左闭右开原则画一圈: 每一种颜色代表一条边,在拐角处画新的边 阅读全文
posted @ 2020-10-23 16:25 消灭猕猴桃 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 快慢指针 思路: 1.将链表分为左右两部分 2.将右半部分翻转 3.使用两个指针判断是否是回文串 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * List 阅读全文
posted @ 2020-10-23 08:59 消灭猕猴桃 阅读(56) 评论(0) 推荐(0) 编辑