450. 删除二叉搜索树中的节点

450. 删除二叉搜索树中的节点

 

  1. class Solution:
  2.     def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:
  3.         if not root:
  4.             return None
  5.         if root.val==key:
  6.             if not root.left and not root.right:
  7.                 return None
  8.             elif not root.right:
  9.                 return root.left
  10.             elif not root.left:
  11.                 return root.right
  12.             else:
  13.                 cur=root.right
  14.                 while cur.left:
  15.                     cur=cur.left
  16.                 cur.left=root.left
  17.                 return root.right
  18.         elif root.val>key:
  19.             root.left=self.deleteNode(root.left,key)
  20.         else:
  21.             root.right=self.deleteNode(root.right,key)
  22.         return root

发表评论