1. 程式人生 > >Convert a given binary tree to double linked list

Convert a given binary tree to double linked list

ret public node alt width ive int src com

技術分享

 public TreeNode binaryTree2List(TreeNode node)
	 {
		 if (node == null)
	            return node;
	  
	        // Convert to DLL using bintree2listUtil()
	        node = bintree2listUtil(node);
	        while (node.left!=null) {
				node=node.left;
				
			}
	        return node;
	 }
	 TreeNode bintree2listUtil(TreeNode node) 
	    {
	        if (node==null) {
				return node;
			}
	        if (node.left!=null) {
				TreeNode leftNode=bintree2listUtil(node.left);
				while (leftNode.right!=null) {
					leftNode=leftNode.right;
					
				}
				leftNode.right=node;
				node.left=leftNode;
			}
	        if (node.right!=null) {
				TreeNode rightNode=bintree2listUtil(node.right);
				while (rightNode.left!=null) {
					rightNode=rightNode.left;
					
				}
				rightNode.left=node;
				node.right=rightNode;
			}
	        return node;
	    }

  

Convert a given binary tree to double linked list