链表问题——两个单链表生成相加链表
2017-12-18 21:38
363 查看
【题目】
假设链表中每一个节点的值都在0-9之间,那么链表整体就可以代表一个整数
例如:9->3->7代表937
给定两个这种链表的头节点head1和head2,请生成代表两个整数相加值的结果链表,并返回结果链表的头节点,注意进位问题
【代码】
假设链表中每一个节点的值都在0-9之间,那么链表整体就可以代表一个整数
例如:9->3->7代表937
给定两个这种链表的头节点head1和head2,请生成代表两个整数相加值的结果链表,并返回结果链表的头节点,注意进位问题
【代码】
//介绍两种方法,一种利用栈,一种利用逆序链表 import java.util.*; class Node { public int value; public Node next; public Node(int data) { this.value = data; } } class test{ //利用栈 public Node addLists1(Node head1,Node head2) { Stack<Integer> s1 = new Stack<Integer>(); Stack<Integer> s2 = new Stack<Integer>(); while(head1!=null) { s1.push(head1.value); head1 = head1.next; } while(head2!=null) { s2.push(head2.value); head2 = head2.next; } int ca = 0; //进位 int n1 = 0; int n2 = 0; int n = 0; Node node = null; Node pre = null; while(!s1.isEmpty() || !s2.isEmpty()) { n1 = s1.isEmpty() ? 0 : s1.pop(); n2 = s2.isEmpty() ? 0 : s2.pop(); pre = node; node = new Node(n%10); node.next = pre; ca = n/10; } if(ca==1) { pre = node; node = new Node(1); node.next = pre; } return node; } //利用链表逆序 public Node addList2(Node head1,Node head2) { head1 = reverseList(head1); head2 = reverseList(head2); int ca = 0; //进位 int n1 = 0; int n2 = 0; int n = 0; Node c1 = head1; Node c2 = head2; Node node = null; Node pre = null; while(c1!=null || c2!=null) { n1 = c1 != null ? c1.value : 0; n2 = c2 != null ? c2.value : 0; n = n1 + n2 + ca; pre = node; node = new Node(n%10); node.next = pre; ca = n/10; c1 = c1 != null ? c1.next : null; c2 = c2 != null ? c2.next : null; } if(ca==1) { pre = node; node = new Node(1); node.next = pre; } reverseList(head1); reverseList(head2); return node; } public Node reverseList(Node head) { Node pre = null; Node next = null; while(head!=null) { next = head.next; head.next = pre; pre = head; head = next; } return pre; } }
相关文章推荐
- 链表问题---两个单链表生成相加链表
- 两个单链表生成相加链表
- 两个单链表生成相加链表II
- 两个单链表生成相加链表
- 算法:两个单链表生成相加链表
- 两个单链表生成相加链表
- 【转载】判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解(转载)
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 小算法系列-判断单链表是否存在环,判断两个链表是否相交问题详解(转)
- 判断单链表是否存在环,判断两个链表是否相交问题详解(zz)
- [zz]判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断单链表是否存在环,判断两个链表是否相交问题详解<转载>