摘要:今天发现自己对于数据结构有点陌生了,最近几年主要精力放在语言层次上,这些基本的东西反而有些陌生了,温故而知新,决定花些时间把这些东西整理下。本文不定期更新。
今天发现自己对于数据结构有点陌生了,最近几年主要精力放在语言层次上,这些基本的东西反而有些陌生了,温故而知新,决定花些时间把这些东西整理下。本文不定期更新。
- 树的层次遍历
输入
4 / 6 9 / 7 8 12
要求打印出 4->6->9->7->8->12
public void PrintByLevel() { LinkedListl = new LinkedList (); l.add(this); while (!l.isEmpty()) { Tree tmp = l.pollFirst(); System.out.println(tmp.getValue()); if (null != tmp.getLChild()) { l.add(tmp.getLChild()); } if (null != tmp.getRChild()) { l.add(tmp.getRChild()); } } }
链表的递归和非递归反转
递归反转
// 递归,在反转当前节点之前先反转后续节点
public static ListNode Reverse(ListNode head) { if (null == head || null == head.next) { return head; } ListNode reversedHead = Reverse(head.next); head.next.next = head; head.next = null; return reversedHead; }
非递归反转
public static ListNode NoneRecursiveReverse(ListNode head) { ListNode retval = null; ListNode node = head; ListNode preNode = null; while ( node != null ){ // get the next node, and save it at pNext ListNode nextNode = node.next; // if the next node is null, the current is the end of original // list, and it"s the head of the reversed list if ( nextNode == null) { retval = node; } // reverse the linkage between nodes node.next = preNode; preNode = node; node = nextNode; } return retval; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64289.html
摘要:回顾选择排序,插入排序,冒泡排序,快速排序,希尔排序,归并排序,堆排序以及如何计算时间复杂度学习文章同学的描述数据结构等同学的十大经典算法本文代码也上传到了排序算法回顾。但希尔排序是非稳定排序算法。 回顾选择排序,插入排序,冒泡排序,快速排序,希尔排序,归并排序,堆排序以及如何计算时间复杂度学习文章:hahda同学的javascript描述数据结构、hustcc等同学的十大经典算法 ...
摘要:社区投稿配置解析投稿余朝飞本文简单介绍了中的三个重要的配置段落,分别是的系统配置,用户配置以及黑白名单功能,针对用户配置则介绍了实际应用场景下的配置以及对应的权限配置,并详细介绍了黑白名单配置实践。 1月24日,我们发布了为期30天的「如何获取全国 25场 MySQL 主题大会免费入场券」有奖社区分享活动,希望社区同学能够分享测试或生产环境中DBLE使用上的难题,困惑,创新或收获,分享...
阅读 1458·2023-04-25 15:40
阅读 2686·2021-08-11 11:15
阅读 2235·2019-08-26 13:48
阅读 2829·2019-08-26 12:18
阅读 2397·2019-08-23 18:23
阅读 2888·2019-08-23 17:01
阅读 2963·2019-08-23 16:29
阅读 965·2019-08-23 15:15