zoukankan      html  css  js  c++  java
  • LeetCode 19——删除链表的倒数第N个节点(JAVA)

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

    示例:

    给定一个链表: 1->2->3->4->5, 和 n = 2.

    当删除了倒数第二个节点后,链表变为 1->2->3->5.
    说明:

    给定的 n 保证是有效的。

    进阶:

    你能尝试使用一趟扫描实现吗?

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    很简单,直接看代码绝对看的懂!

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution 
    {
        public ListNode removeNthFromEnd(ListNode head, int n) 
        {
            if(head==null||head.next==null)
            {
                return null;
            }
            ListNode node=head;
            int length=0;
            while(node!=null)
            {
                length++;
                node=node.next;
            }
            node=head;
            if(length==n)//针对删除的是头节点的特殊情况
            {
                head=head.next;
            }
            else
            {
                for(int i=0;i<length-n-1;i++)//令node指向待删除节点的前一个节点
                {
                   node=node.next;
                }
    
                node.next=node.next.next;
            }
            
            return head;
        }
    }
  • 相关阅读:
    转载:通过Servlet生成验证码
    转载:web工程中URL地址的推荐写法
    使用Git上传本地项目代码到github
    $watch 和 $apply
    平时用的sublime插件
    zTree.js
    js
    npm install详解
    git
    git基础
  • 原文地址:https://www.cnblogs.com/jiameng991010/p/11272079.html
Copyright © 2011-2022 走看看