单向链表反转

package algorithms.sort;

public class AddAValue { 
    	 Node root = null;
    	 class Node {
    		 Node next;
    		 int val;
    		 public Node(int x) {
    			 this.val = x;
    			 this.next = null;
    		 }
    	 } 
    	 public void rev() {
    		 root = reverse();
    	 }
         public Node reverse() { 
        	 if(root == null)  
        		 return null; 
        	 if(root.next == null)  
        		 return root; 
        	 int i = 0;
        	 Node right = null;
        	 while(true) {
        		 i++;
        		 Node curNode = root;
        		 while(curNode.next.next != null)
        			 curNode = curNode.next;
        		 if(i == 1)
        		    right = curNode.next; 
        		 curNode.next.next = curNode; 
        		 curNode.next = null;
        		 if(curNode == root)
        			 break;
        	 }
        	 return right;
         } 
         public void put(int val) { 
        	 Node x = new Node(val);
        	 if(root == null) {
        		 root = x;
        		 return;
        	 } 
        	 Node curNode = root; 
        	 while(curNode.next!= null)
        		 curNode = curNode.next;
        	 curNode.next = x;
         }
         public void printNode() {
        	 Node curNode = root;
        	 while(curNode != null) {
        		  System.out.print(curNode.val + " ");
        		  curNode = curNode.next;
        	 }
        		 
         }
		 public static void main(String[] args) {
			 AddAValue addValue = new AddAValue();
	         for(int i = 0; i < 8; i++)
	        	  addValue.put(i);
	         addValue.printNode();
	         System.out.println();
	         addValue.rev();
	         addValue.printNode();
	         
	         
	         
		 }

}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值