原理:
三種型別:
1.刪除的是葉子結點
2.刪除的結點有乙個子節點
3.刪除的結點有兩個子節點
**:public class tree else
}else}}
}}//查詢結點
public node find(int value)
else
if(current == null)
}return current;}/*
* 刪除結點*/
public boolean delete(int value)
else
if(current == null)
}//刪除葉子結點
if(current.leftchild == null && current.rightchild ==null)
else
else
} }else if(current.rightchild == null) //只有左結點
parent.leftchild = current.leftchild;
}else
parent.rightchild =current.leftchild;
}}else if(current.leftchild == null)
else
}else
else if(isleftchild)
else
seccesor.leftchild = current.leftchild;
}return true;
}//尋找中繼結點
public node getsuccessor(node delnode)
/************不解***************/
if(successor != delnode.rightchild)
/***************不解************/
return successor;}/*
* 前序遍歷
* */
public void frontorder(node localnode)
}/*中序遍歷*/
public void inorder(node localnode)
}/*後序遍歷*/
public void lastorder(node localnode)}}
二叉樹刪除結點
二叉樹完成刪除結點的操作.規定 1 如果刪除的節點是葉子節點,則刪除該節點 2 如果刪除的節點是非葉子節點,則刪除該子樹 思路首先先處理 考慮如果樹是空樹root,如果只有乙個root結點,則等價將二叉樹置空 然後進行下面步驟 1.因為我們的二叉樹是單向的,所以我們是判斷當前結點的子結點是否需要刪除...
leetcode 練習 二叉樹刪除結點
delete node in a bst 給定乙個二叉搜尋樹的根節點 root 和乙個值 key,刪除二叉搜尋樹中的 key 對應的節點,並保證二叉搜尋樹的性質不變。返回二叉搜尋樹 有可能被更新 的根節點的引用。一般來說,刪除節點可分為兩個步驟 首先找到需要刪除的節點 如果找到了,刪除它。說明 要求...
二叉樹結點, 排序
二叉樹結點,排序 1.二叉搜尋樹結點最小距離 給定乙個二叉搜尋樹的根結點 root,返回樹中任意兩節點的差的最小值 對這個序列相鄰相減,取最小值即可。實現時,可以優化掉這個序列。在遍歷時記錄上乙個訪問的節點值,和當前節點相減,記錄下最小值即可 定義樹節點 public class treenode ...