算法练习之平衡二叉树

Posted shelly笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法练习之平衡二叉树相关的知识,希望对你有一定的参考价值。

  1. 2棵二叉平衡树,找出值不相等的节点,打印节点坐标(位置信息)

     0

  /     \

 3       5

/    \

7  10    

                     

     2 

  /     \

6       9

/    \

7    8

思路:明显的递归遍历(深度遍历或广度遍历)这里就用比较简单的方法,深度遍历了。

思考了很久如何获取坐标位置,本来是用闭包来做,但是好像修改后获取到的坐标不准确了,改为参数传入了,一起递归。

# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def test(self, tree1: TreeNode, tree2: TreeNode): p = [] def search(tree1, tree2, x, y): if not tree1 and not tree2: return if not tree1 or not tree2: p.append((x, y)) return print(x, y, tree1.val, tree2.val) if tree1.val != tree2.val: p.append((x, y)) search(tree1.left, tree2.left, x*2, y+1) search(tree1.right, tree2.right, x*2+1, y+1) search(tree1, tree2, 0, 0) return pif __name__ == "__main__": sl = Solution() t1 = TreeNode(0) t1.left = TreeNode(4) t1.right = TreeNode(5) t1.left.left = TreeNode(6) t1.left.right = TreeNode(7) t2 = TreeNode(2) t2.left = TreeNode(2) t2.right = TreeNode(9) r = sl.test(t1, t2) print(r)

    

    做完了发现其实很容易,但是做了一个小时诶,平时做得比较多的是动态规划类的题目,碰到树的题目还是有点害怕的,还是要多练习多练习

以上是关于算法练习之平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法二叉树——平衡二叉树

编程算法 - 推断二叉树是不是平衡树 代码(C)

算法总结:左神class5—二叉树是否是平衡二叉树,搜索二叉树,平衡二叉树

⭐算法入门⭐《二叉树 - 平衡二叉树》简单01 —— LeetCode 110. 平衡二叉树

算法笔记-7:平衡二叉树(代码篇)

代码随想录算法训练营第17天 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和