1. 程式人生 > >(劍指offer)二叉搜尋樹與雙向連結串列

(劍指offer)二叉搜尋樹與雙向連結串列

時間限制:1秒 空間限制:32768K 熱度指數:183079

題目描述
輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的結點,只能調整樹中結點指標的指向。

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    //中序遍歷
private TreeNode leftHead = null;//連結串列左頭 private TreeNode rightHead = null;//連結串列右頭 public TreeNode Convert(TreeNode pRootOfTree) { if(pRootOfTree == null){ return null; } Convert(pRootOfTree.left); if(leftHead == null){//最左子節點會成為連結串列的左頭 leftHead =
rightHead = pRootOfTree; }else{//在中序遍歷的時候會一直向右邊擴充套件連結串列 rightHead.right = pRootOfTree; pRootOfTree.left = rightHead; rightHead = pRootOfTree; } Convert(pRootOfTree.right); return leftHead; } }