剑指 Offer 第36题:二叉搜索树与双向链表

2022-08-03  本文已影响0人  放开那个BUG

1、前言

题目描述

2、思路

二叉搜索树的中序遍历,最后的 dfs 返回时,还需要处理一下,让头跟尾连起来。

3、代码

class Solution {

    private Node pre = null;

    public Node treeToDoublyList(Node root) {
        if(root == null){
            return root;
        }

        Node head = new Node();
        pre = head;
        dfs(root);
        Node res = head.right;
        pre.right = res;
        res.left = pre;

        return res;
    }

    private void dfs(Node root){
        if(root == null){
            return;
        }

        dfs(root.left);

        pre.right = root;
        root.left = pre;
        pre = root;

        dfs(root.right);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读