题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

import java.util.*;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public TreeNode Convert(TreeNode pRootOfTree) {
        ArrayList<TreeNode> arr = new ArrayList<TreeNode>();
        if (pRootOfTree != null) {
            if (pRootOfTree.left != null) {
                travel(pRootOfTree.left, arr);
            }
            arr.add(pRootOfTree);
            if (pRootOfTree.right != null) {
                travel(pRootOfTree.right, arr);
            }
        }else{
            return null;
        }
        if(arr.size() == 1){
            return pRootOfTree;
        }
        for(int i = 0; i < arr.size(); i++){
            if(i == 0){
                arr.get(0).right = arr.get(1);
                continue;
            }
            if(i == arr.size()-1){
                arr.get(arr.size()-1).left = arr.get(arr.size() -2);
                continue;
            }
            arr.get(i).left = arr.get(i-1);
            arr.get(i).right = arr.get(i+1);

        }
        return arr.get(0);
    }
    public void travel(TreeNode root, ArrayList<TreeNode> arr) {
        if (root != null) {
            if (root.left != null) {
                travel(root.left, arr);
            }
            arr.add(root);
            if (root.right != null) {
                travel(root.right, arr);
            }
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 14:08
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务