zoukankan      html  css  js  c++  java
  • 369. Plus One Linked List

    其实就是找最后一段都是9的NODE,比如:
    723 99 23 9999 4 9999 1 9 8

    需要定位到最后一个全是9的数段的开头,就是那个1,然后看最后一个值是不是9,是的话定位的val+1,然后定位后面都是0:
    723 99 23 9999 4 9999 1 9 9
    变成
    723 99 23 9999 4 9999 2 0 0
    最后一个值不是9,最后一个值+1就行了:
    723 99 23 9999 4 9999 1 9 8
    变成
    723 99 23 9999 4 9999 1 9 9

    剩下的就是要解决EDGE CASE,比如都是9之类的情况。。借助一个DUMMY NODE会方便很多。

    public class Solution {
        public ListNode plusOne(ListNode head) 
        {
            if(head == null) return head;
            
            ListNode tempHead = new ListNode(0);
            tempHead.next = head;
            ListNode temp = tempHead;
            
            while(temp.next != null)
            {
                if(temp.val !=9 && temp.next.val == 9)
                {
                    tempHead = temp;
                }
                temp=temp.next;
            }
            
            if(temp.val == 9)
            {
                tempHead.val++;
                temp = tempHead.next;
                while(temp!=null)
                {
                    temp.val = 0;
                    temp=temp.next;
                }
                if(tempHead.next == head) return tempHead;
            }
            else
            {
                temp.val++;
                
            }
            
            return head;
            
           
            
        }
    }
    
  • 相关阅读:
    文件操作和网络通信
    h4和c2的简单内容
    Node介绍
    终端命令和环境变量
    C#连接MySQL数据库方法
    多点触控
    wp7全景控件
    Silverlight数据绑定转换示例
    Windows Phone 7两个页面动画跳转
    使用.NET操作SQLLITE
  • 原文地址:https://www.cnblogs.com/reboot329/p/5935756.html
Copyright © 2011-2022 走看看