zoukankan      html  css  js  c++  java
  • remove-nth-node-from-end-of-list

    /**
    * 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
    * 例如,
    * 给出的链表为:1->2->3->4->5, n= 2.↵↵
    * 删除了链表的倒数第n个节点之后,链表变为1->2->3->5.
    * 备注:
    * 题目保证n一定是合法的
    * 请尝试只用一步操作完成该功能
    */

    /**
     * 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
     * 例如,
     *    给出的链表为:1->2->3->4->5, n= 2.↵↵
     *    删除了链表的倒数第n个节点之后,链表变为1->2->3->5.
     * 备注:
     * 题目保证n一定是合法的
     * 请尝试只用一步操作完成该功能
     */
    
    public class Main58 {
        public static void main(String[] args) {
            ListNode head = new ListNode(1);
            head.next = new ListNode(2);
            head.next.next = new ListNode(3);
            head.next.next.next = new ListNode(4);
            head.next.next.next.next = new ListNode(5);
            System.out.println(Main58.removeNthFromEnd(head, 2).val);
        }
    
        public static class ListNode {
            int val;
            ListNode next;
            ListNode(int x) {
                val = x;
                next = null;
            }
        }
    
        public static ListNode removeNthFromEnd(ListNode head, int n) {
            ListNode first = head;
            ListNode second = head;
            while (n-- > 0) {
                first = first.next;
            }
            ListNode pre = null;
            while (first.next != null) {
                pre = second;
                second = second.next;
                first = first.next;
            }
            if (pre != null) {
                pre.next = second.next;
            }else{
                head = head.next;
            }
            return head;
        }
    }
    

      

  • 相关阅读:
    Oracle数据库学习1--简介,基本了解
    数据导出excel表格和Word文档
    Ado.Net 数据库增删改查(联合版)
    Ado.Net 数据库增删改查
    Chapter 10. 设计模式--单例模式
    Chapter 10. 设计模式--工厂模式
    Chapter 9. 线程
    Chapter 8. 进程
    Chapter 7. 对话框控件
    Chapter 6. ListBox控件(双击播放图片)
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11381363.html
Copyright © 2011-2022 走看看