package com.daily.daily20210123;
import java.util.LinkedList;
import java.util.Queue;
/**
* @Project: dailyCode
* @Site: http://www.zhao1iang.club/
* @Copyright: ©CodeLamp
* @Author: zhaoliang
* @Create: 2021-01-23 19:38
* @Desc: 二叉搜索树转化成排序的双向链表
**/
public class Convert {
//输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){
this.val =x;
}
}
private TreeNode pre;
private TreeNode head;
public TreeNode convert(TreeNode root){
//中序遍历是有序的,中左右
inorder(root);
return head;
}
private void inorder(TreeNode root) {
if (root==null)return;
inorder(root.left);
root.left = pre;
if (pre!=null)
pre.right = root;
pre = root;
if (head==null){
head = root;
}
inorder(root.right);
}
}
日常刷题-二叉搜索树转化成排序的双向链表
最新推荐文章于 2021-05-29 10:56:08 发布