博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表
阅读量:5112 次
发布时间:2019-06-13

本文共 2062 字,大约阅读时间需要 6 分钟。

题目:

输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表

要求不能创建人和新的结点,只能调整树中结点指针的指向

 

解答:

1 public class Solution { 2     public static void main(String[] args) { 3         BinaryTreeNode root=new BinaryTreeNode(10); 4         BinaryTreeNode node1=new BinaryTreeNode(6); 5         BinaryTreeNode node2=new BinaryTreeNode(14); 6         BinaryTreeNode node3=new BinaryTreeNode(4); 7         BinaryTreeNode node4=new BinaryTreeNode(8); 8         BinaryTreeNode node5=new BinaryTreeNode(12); 9         BinaryTreeNode node6=new BinaryTreeNode(16);10         root.setLchildNode(node1);root.setRchildNode(node2);11         node1.setLchildNode(node3);node1.setRchildNode(node4);12         node2.setLchildNode(node5);node2.setRchildNode(node6);13         BinaryTreeNode head=covert(root);14 15         while(head != null) {16             System.out.println(head.getData());17             head = head.getRchildNode();18         }19     }20 21     private static BinaryTreeNode covert(BinaryTreeNode root) {22         BinaryTreeNode lastNodeList = null;23         lastNodeList = covertNode(root, lastNodeList);24 25         while(lastNodeList != null && lastNodeList.getLchildNode() != null) {26             lastNodeList = lastNodeList.getLchildNode();27         }28 29         return lastNodeList;30     }31 32     private static BinaryTreeNode convertNode(BinaryTreeNode root, BinaryTreeNode lastNodeList) {33         if(root == null) {34             return null;35         }36 37         BinaryTreeNode current = root;38         if(current.getLchildNode() != null) {39             lastNodeList = covertNode(current.getLchildNode(), lastNodeList);40         }41 42         current.setLchildNode(lastNodeList);43 44         if(lastNodeList != null) {45             lastNodeList.setRchildNode(current);46         }47 48         lastNodeList = current;49 50         if(current.getRchildNode() != null) {51             lastNodeList = covertNode(current.getRchildNode(), lastNodeList);52         }53 54         return lastNodeList;55     }56 57 58 }

 

转载于:https://www.cnblogs.com/wylwyl/p/10369488.html

你可能感兴趣的文章
【转】在HTML中使用Javascript
查看>>
Ext.Net学习笔记23:Ext.Net TabPanel用法详解
查看>>
3.1.6 循环栅栏:CyclicBarrier
查看>>
线程池(1)
查看>>
awk字符提取
查看>>
linux下安装JDK和Tomcat
查看>>
android仿苹果分段按钮
查看>>
Java序列化
查看>>
【集训笔记】二分图及其应用【HDOJ1068【HDOJ1150【HDOJ1151
查看>>
高效素数判断
查看>>
[分享]linux Y480安装显卡驱动经历!
查看>>
libgdx与Robovm绑定的坑
查看>>
深入浅出VB.NET提示对话框
查看>>
哲理小故事(二)
查看>>
STL学习笔记(三) 关联容器
查看>>
我要好offer之 C++大总结
查看>>
解决jquery操作checkbox全选全不选无法勾选问题
查看>>
ENVISAT ASAR 文件命名规则
查看>>
后端传输数据到前端
查看>>
Export class type
查看>>