二叉查找树转为双向链表

来源:互联网 发布:淘宝信誉度等级表 编辑:程序博客网 时间:2024/05/18 01:06

二叉查找树的特性:

左节点比其父节点要小,右节点比其父节点要大。

原题是:

         12

    8       15

6   9    13   16

变为链表:  6=8=9=12=13=15=16 

所以,首先想到中序遍历


中序遍历代码:

   void visit(Node node){   visit(node.left());println("node" + node.val());   visit(node.right());}


改进一下即可:

设置一个变量,记录上一个node,再设置一个变量,记为链表头:

Node pre;Node head;void visit(Node node){   visit(node.left());   node.left = pre;   if(pre == null){        head = node;   }else{        pre.right = node;   }   pre = node;   visit(node.right());}

	
				
		
原创粉丝点击