几道链表的题目
来源:互联网 发布:买家淘宝退货率 编辑:程序博客网 时间:2024/06/06 06:44
两个链表相加成一个链表
public int Node{public int value;public Node next;public Node(int data){this.value = data;}}public Node addList1(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();n = n1 + n2 + ca;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;n1 = c1!=null?c1.next:null;n2 = c2!=null?c2.next:null;}if(ca == 1){pre = node;node = new Node(1);node.next = pre;}reverList(head1);reverList(head2);return node;}
二叉搜索树转换成双向链表
//将二叉树转换成双向链表,先将二叉树转换成中序入队列,//然后弹出元素,转成双向链表public Node convert1(Node head){Queue<Node> queue = new LinkedList<Node>();inOrderToQueue(head,queue);if(queue.isEmpty()){return head;}head = queue.poll();Node pre = head;pre.left = null;Node cur = null;while(!queue.isEmpty()){cur = queue.poll();pre.right = cur;cur.left = pre;pre = cur;}pre.right = null;return head;}public void inOrderToQueue(Node head,Queue<Node> queue){ if(head == null){ return; } inOrderToQueue(head.left,queue); queue.offer(head); inOrderToQueue(head.right,queue);}
0 0
- 几道链表的题目
- 没有题目的题目--心情记事
- 题目1088:剩下的树 题目13
- 题目1108:堆栈的使用 题目28
- java的常见题目
- 可口可乐公司的招聘题目
- 八皇后的题目
- 面试之前的题目
- 一道有趣的题目
- 一道用递规做的题目
- 面试的题目
- C#的题目
- 更新后的题目
- 方正的面试题目
- c++的面试题目
- 某公司招聘的题目
- 有意思的程序设计题目
- 大一的一些题目
- ios 生成的二维码模糊不清
- 设计模式六大原则
- Linux搭建VPN
- 百度地图开发(2)
- 最大波动-CCF往届题
- 几道链表的题目
- Mac - 查看端口占用
- Make interesting things with react!
- vim 宏学习 实现批量处理
- 对HDFS进行文件操作的若干代码
- 线程相关错误总结
- 【java】pta18周练习题
- 大神解答:如何实现域账号免登陆流程平台的功能
- 安卓自定义View-Canvas之图片文字