zoukankan      html  css  js  c++  java
  • 算法 翻转二叉树 dfs

    翻转二叉树

    翻转一棵二叉树。左右子树交换。

    Example

    样例 1:

    输入: {1,3,#}
    输出: {1,#,3}
    解释:
    	  1    1
    	 /  =>  
    	3        3
    

    样例 2:

    输入: {1,2,3,#,#,4}
    输出: {1,3,2,#,4}
    解释: 
    	
          1         1
         /        / 
        2   3  => 3   2
           /       
          4         4
    

    Challenge

    递归固然可行,能否写个非递归的?

    代码:

    """
    Definition of TreeNode:
    class TreeNode:
        def __init__(self, val):
            self.val = val
            self.left, self.right = None, None
    """
    
    class Solution:
        """
        @param root: a TreeNode, the root of the binary tree
        @return: nothing
        """
        def invertBinaryTree(self, root):
            # write your code here
            if not root:
                return
            self.invertBinaryTree(root.left)
            self.invertBinaryTree(root.right)
            root.left, root.right = root.right, root.left
              

    当然,使用先序遍历也可以

  • 相关阅读:
    JavaScript学习笔记之数组(一)
    Ajax与CORS通信
    JSONP跨域
    JavaScript原型与原型链
    CSS布局套路
    爱奇艺的自制节目
    2019.3.6错误经验
    Kickdown UVA
    ASP.NET Web
    C# Windows
  • 原文地址:https://www.cnblogs.com/bonelee/p/11609991.html
Copyright © 2011-2022 走看看