剑指offer 之 二叉搜索树与双向链表
来源:互联网 发布:素颜霜 知乎 编辑:程序博客网 时间:2024/05/17 01:45
# -*- coding:utf-8 -*-'''面试27:二叉树搜索与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 '''class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def Convert(self, pRootOfTree): # write code here # # 做中序遍历 if not pRootOfTree or (not pRootOfTree.left and not pRootOfTree.right): return pRootOfTree # 递归处理左子树 self.Convert(pRootOfTree.left) lt = pRootOfTree.left if lt: while lt.right: lt = lt.right pRootOfTree.left, lt.right = lt, pRootOfTree# 修改当前根节点指针 # 递归处理右子树 self.Convert(pRootOfTree.right) rt = pRootOfTree.right if rt: while rt.left: rt = rt.left pRootOfTree.right, rt.left = rt, pRootOfTree # 最左的结点是双链表的第一个结点 while pRootOfTree.left: pRootOfTree = pRootOfTree.left return pRootOfTree
阅读全文
0 0
- 剑指offer 之 二叉搜索树与双向链表
- 剑指Offer二叉搜索树与双向链表
- 【剑指offer:】Q27:二叉搜索树与双向链表
- 剑指offer--二叉搜索树与双向链表
- 剑指offer 27 - 二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 《剑指offer》二叉搜索树与双向链表
- 【剑指Offer】二叉搜索树与双向链表
- 剑指offer—二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 剑指Offer--027-二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- [剑指offer]二叉搜索树与双向链表
- 《剑指offer》-二叉搜索树与双向链表
- 剑指offer-27二叉搜索树与双向链表
- 剑指offer题解 二叉搜索树与双向链表
- 剑指offer|二叉搜索树与双向链表
- FAFU OJ 全排列
- 设计模式之中介者模式
- 机器学习中的正/负样本
- Shredding Company--(DFS)
- 1.7. 高斯过程(Gaussian Processes)
- 剑指offer 之 二叉搜索树与双向链表
- TODO 解析
- 博通wifi驱动详解(四)
- JDBC初学
- Ubuntu每次开机后提示:检测到系统程序出现问题的解决方法
- POJ 2411-Mondriaan's Dream(状压DP->骨牌铺满问题)
- netty学习七:集成protobuf完成单个对象序列化以及在网络上传输
- Objective-C基础之面向对象编程(OOP)的基础知识(1)——间接
- Vue学习