您的位置:首页 > Web前端

剑指offer--给定一个链表,从尾部到头部打印,输出链表节点的值

2017-03-16 12:31 288 查看
/*给定一个链表,从尾部到头部打印,

* 输出链表节点的值*/

package offer1.PrintLinkListFromTailToFront;

/*给定一个链表,从尾部到头部打印,
* 输出链表节点的值*/

public class Own {

public static class ListNode{
int val;
ListNode next=null;
public ListNode(int val) {
this.val=val;
}

}

public Integer[] printListFromTailToHead(ListNode listNode){
int len=0;
ListNode temp=listNode;
//1.第一轮遍历链表,统计节点个数
while (listNode!=null) {
++len;
listNode=listNode.next;
}

//2.第二轮遍历数组,把遍历的节点的值从数组后面开始往前面填充
Integer[] nodes=new Integer[len];
int i=len-1;
while (temp!=null) {
nodes[i--]=temp.val;
temp=temp.next;
}
return nodes;
}

//测试
public static void main(String[] args) {
ListNode root=new ListNode(1);
ListNode node1=new ListNode(2);
ListNode node2=new ListNode(3);
ListNode node3=new ListNode(4);

root.next=node1;
node1.next=node2;
node2.next=node3;

Own a=new Own();
Integer[]s=a.printListFromTailToHead(root);
for (int i = 0; i < s.length; i++) {
System.out.print(s[i]+" ");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐