Single linked list reverse

18 篇文章 0 订阅

Single linked list reversed:

 

(1) Algorithm



(2) Analysis


(0), (1), (2), (3), (4)  correspond to the numbers of codes


the first while loop

-------------------------------------------


(0) r=NULL, y=x

r=NULL    a    --->    b     --->   c   --->  d --> NULL
                |(0)            
                y            

-------------------------------------------


(1) t =y->next

r=NULL    a    --->    b     --->   c   --->  d --> NULL
                | (0)         | (1)  
                y              t 


--------------------------------------------


(2) y->next = r
              
a    --->  NULL            b     --->   c   --->  d --> NULL
|(0)     (2)  |                | (1)  
y                r                t 
 
---------------------------------------------     

  
(3) r = y    
          
a    --->  NULL            b     --->   c   --->  d --> NULL
|(0)        (2)                | (1)  
y                                 t 
|(3)
r

--------------------------------------------- 


(4) y = t
              
a    --->  NULL            b     --->   c   --->  d --> NULL
|(0)        (2)                | (1)  
|                                 t 
|(3)                            | (4)
r                                y

The second while loop (refined):
--------------------------------------------- 
(1) t = y->next
              
a    --->  NULL            b     --->   c   --->  d --> NULL
|                                 |              |(1)
r                                 y              t
                         
--------------------------------------------- 


(2) y->next = r
              
b  --->  a    --->  NULL         c   --->  d --> NULL
|  (2)    |                             |(1)
y          r                             t

--------------------------------------------- 


(3) r = y
              
b  --->  a    --->  NULL         c   --->  d --> NULL
|  (2)                                   |(1)
y                                         t
|  (3)
r

--------------------------------------------- 


(4) y = t
              
b  --->  a    --->  NULL         c   --->  d --> NULL
|  (2)                                   |(1)
|                                          t
|  (3)                                   |(4)
r                                          y

The third while loop(refined):
--------------------------------------------- 


(1) t = y->next
              
b  --->  a    --->  NULL         c   --->  d --> NULL
|                                         |             |(1)
r                                         y             t

later parts are same to the second while loop, at last we can get:
              
d ---> c  ---> b  --->  a    --->  NULL 
                                   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值