zoukankan      html  css  js  c++  java
  • 2020年3月16日算法练习

     代码如下

    package com.qyx.test;
    public
    class removeListNodeRev { /** * 删除单向链表中的倒数第n个链表 * 使用双指针算法,可以实现一次遍历即可删除 * 方案如下: * 第一个节点先走了n+1步,第二个节点停着,那么他们两个就差了n+1步, * 然后进行遍历,直到第一个节点遍历到尾部,第二个节点遍历的位置距离尾部就是n+1; * 因为在之后的移动中,他们是一起移动的 */ public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy=new ListNode(0); dummy.next=head; ListNode first=dummy; ListNode second=dummy; for(int i=1;i<=n+1;i++) { first=first.next; } while(first!=null) { first.next=first; second.next=second; } second.next=second.next.next; return dummy.next; } /** * 单指针 ,实现两次遍历即可删除、 * 添加哑结点 * L-n+1节点就是我们要删除的节点 */ public ListNode removeNthFromEnd02(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next=head; int length = 0; ListNode first=head; while (first != null) { length++; first = first.next; } length-=n; first=dummy; while (length > 0) { length--; first = first.next; } first.next = first.next.next; return dummy.next; } } class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }
  • 相关阅读:
    android测试 adb命令、Monkey命令
    appium工作原理及启动方式
    python中自动化测试框架unittest
    python读取execl数据文件
    LeetCode#110 Balanced Binary Tree
    LeetCode#111 Minimum Depth of Binary Tree
    LeetCode#112 Path Sum
    数据链路层对应的子层
    数据链路层设备
    介质访问控制
  • 原文地址:https://www.cnblogs.com/qyx66/p/12507186.html
Copyright © 2011-2022 走看看