zoukankan      html  css  js  c++  java
  • 26、二叉搜索树与双向链表

    输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

    ==========Python==========

    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    #
    # 
    # @param pRootOfTree TreeNode类 
    # @return TreeNode类
    #
    class Solution:
        def __init__(self):
            self.head = None
            self.pre = None
        def Convert(self , pRootOfTree ):
            # write code here
            def dfs(pRootOfTree):
                if pRootOfTree is None:
                    return
                dfs(pRootOfTree.left)
                pRootOfTree.left = self.pre
                if self.pre:
                    self.pre.right = pRootOfTree
                self.pre = pRootOfTree
                if self.head is None:
                    self.head = pRootOfTree
                dfs(pRootOfTree.right)
            
            dfs(pRootOfTree)
            return self.head

    ==========Java=========

    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode (int val) {
            this.val = val;
        }
    }
    
    public class Solution {
        private TreeNode head = null;
        private TreeNode pre = null;
    
        public TreeNode Convert(TreeNode root) {
            ConvertHelper(root);
            return head;
        }
    
        private void ConvertHelper(TreeNode node) {
            if (node == null) {
                return;
            }
            ConvertHelper(node.left);
            node.left = pre;
            if (pre != null) {
                pre.right = node;
            }
            pre = node;
            if (head == null) {
                head = node;
            }
            ConvertHelper(node.right);
        }
    
    
    }
  • 相关阅读:
    Floyd最小环
    D
    C
    B
    HPU personal training
    D
    A
    简练网软考知识点整理-项目风险审计及风险评估
    简练网软考知识点整理-项目需求跟踪及需求跟踪矩阵
    简练网软考知识点整理-项目资源优化、资源平衡及资源平滑
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13538748.html
Copyright © 2011-2022 走看看